gpt4 book ai didi

java - 方法重载显示 'incompatible type error' 带 float 但不带 double

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:46:45 24 4
gpt4 key购买 nike

我试过这个方法重载代码,但我得到了错误

no suitable method found for add(double,double)

代码:

class Adder {
static float add(float a, float b) {
return a + b;
}

static int add(int a, int b) {
return a + b;
}
}

class TestOverloading1 {
public static void main(String[] args){
System.out.println(Adder.add(11.5, 11.5));
System.out.println(Adder.add(27, 21));
}
}

在编写时,参数中的 11.5f 效果很好。

我从 here 了解了 float 和 double 之间的区别和 here .

那么,Java为什么默认将参数取为double数据类型呢?这种偏差背后是 double 的更高精度吗?

我知道默认情况下它采用 double 。但是,我想知道这背后的原因是什么?

最佳答案

根据定义,没有任何后缀的浮点文字(例如 11.5)是 double 类型(类似地,没有任何后缀的整数文字是 int 类型)。

double 参数对于接受 float 参数的方法是 Not Acceptable (因为从 doublefloat 可能会导致数据丢失,因此编译器不会自动执行此类转换)。

另一方面,11.5f 是一个float 文字,因此您可以将此类文字传递给您的add(float a,float b) 方法。

关于java - 方法重载显示 'incompatible type error' 带 float 但不带 double,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46033859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com