所以每个人都在发帖时写下以下代码,他们会得到“可能的精度损失”错误:
float c= 30.123;
我尝试了相同的代码并且编译失败并出现此错误“类型不匹配:无法从double转换为float”。我正在使用Java 7运行它。
任何人都知道发生了什么事?
答案 0 :(得分:6)
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
的IntelliJ:
不兼容的类型。
要求:浮动
发现:双
蚀:
类型不匹配:无法从double转换为float
BlueJ的:
可能损失精度
要求:浮动;发现:双