因此,每个人都发布说,当他们编写以下代码时,会出现“可能丢失精度”错误:
float c= 30.123;
我尝试了相同的代码,但编译失败,出现此错误“类型不匹配:无法从双精度转换为浮点”。我正在使用 Java 7 运行它。
有谁知道发生了什么?
30.123
是隐含的double
。编译器告诉您,当您double
为float
变量赋值时会丢失精度。做了
float c = 30.123f;
不同的错误消息来自不同的 IDE。我将该行放在一个文件中并在三个 IDE 中检查它并尝试从命令提示符编译它,我收到了四个不同的错误消息。
命令提示符:
C:\Users\Bill\Desktop>javac Num.java
Num.java:5: error: possible loss of precision
float c= 30.123;
^
required: float
found: double
1 error
智能:
不兼容的类型。
必需:float
找到:double
蚀:
类型不匹配:无法从 double 转换为 float
蓝色J:
可能需要的精度损失
:浮点数;发现:双