float后加f为什么就能转换成double类型?

2024-11-23 08:47:11
推荐回答(2个)
回答(1):

可以这样来定义一个double型的
double d = 0.1;
然而,这样不可以通过
float f = 0.1;来定义一个float型的,这是因为默认的小数是double型的
要定义一个float型的,有两种方式
float f = 0.1f;
或者 float f = (float)0.1;

相互之间的转化:
举个例子:
假设有void f1(double d)
void f(float f)
这两个函数的定义

现在用上面定义的变量来调用一下就知道了
f(d);是有编译错误的,这说明java中double不能自动转化为float,改为f((float) d);就行了

但是f1(f),确是可以是,这是因为java可以自动的转化float至double来进行运算。

至于为什么?
java在运算时会自动的提升变量的精度来进行运算,double比float精度更高,所以可以自动的从float转化至double再进行运算。

回答(2):

问题错了。是变成float型。