在Java中什么时候double必须强制转换成float 就是要在数值后加f或者强制转换

来源:百度知道 编辑:UC知道 时间:2024/05/14 08:27:01
在Java中什么时候double必须强制转换成float。。 就是要在数值后加f或者强制转换 初学者 见笑了~~

好吧,我也来说说double与float之间的转换

首先,我说一下定义时赋值的情况
比如:
你可以这样来定义一个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再进行运算。

double是双精度
float是单精度
你输入的数是什么就用什么
是float型就要在后面+f

当你把一个double型的数值转成float型时,要强转
如下:
double d= 12.8;
float f= 4;
f = (float)d;
反之,不用强转,java自动转换

把一个double值赋给一个float类型的变量时。