我写了这段代码:
float b = 3.6;
我得到了这个:
Error:Unresolved compilation problem: Type mismatch: cannot convert from double to float
为什么呢?什么是float
?
答案 0 :(得分:164)
在Java中,当您输入十进制数字为3.6
时,其解释为double
。 double
是64位精度IEEE 754浮点,而float
是32位精度IEEE 754浮点。由于float
不如double
精确,因此无法隐式执行转化。
如果你想创建一个浮动,你应该用f
结束你的号码(即:3.6f
)。
有关详细说明,请参阅primitive data types definition of the Java tutorial。
答案 1 :(得分:37)
答案 2 :(得分:13)
事实是十进制数字默认为加倍。而且由于double不适合浮动,你必须明确告诉你有意定义一个浮点数。所以请跟:
float b = 3.6f;
答案 3 :(得分:6)
在JAVA中,值如:
假设为 double 而不是 float 。
您还可以执行演员表来解决问题:
float b = (float) 3.5
;
另一种解决方案:
float b = 3.5f
;