我写了这段代码:
float b = 3.6;
我得到了这个:
Error:Unresolved compilation problem: Type mismatch: cannot convert from double to float
为什么? float的定义是什么?
float
Make it
float b= 3.6f;
如果浮点文字的后缀是 ASCII 字母 F 或 f,那么它的类型是 float; 否则它的类型是 double,并且可以选择后缀是 ASCII 字母 D 或 d
问题是十进制数默认是双倍。而且因为 double 不适合 float 你必须明确地告诉我们你有意定义了 float。那就这样吧:
float b = 3.6f;
在 Java 中,当输入十进制数为 3.6时,它将被解释为 double。double是一个64位精度的 IEEE754浮点数,而 float是一个32位精度的 IEEE754浮点数。由于 float不如 double精确,因此不能隐式地执行转换。
3.6
double
If you want to create a float, you should end your number with f (i.e.: 3.6f).
f
3.6f
有关详细说明,请参阅 Java 教程的基本数据类型定义。
在 JAVA 中,值如:
假定为 双倍而不是 漂浮。
为了解决这个问题,您还可以执行强制转换:
float b = (float) 3.5;
float b = (float) 3.5
另一个解决办法:
float b = 3.5f;
float b = 3.5f