所以每个人都在发帖时写下以下代码,他们会得到"可能的精度损失"错误:
float c= 30.123;
Run Code Online (Sandbox Code Playgroud)
我尝试了相同的代码和编译失败,出现此错误"类型不匹配:无法从double转换为float".我用Java 7运行它.
谁知道发生了什么?
30.123隐含地是一个double.编译器告诉您double在为float变量赋值时会丢失精度.做了
float c = 30.123f;
Run Code Online (Sandbox Code Playgroud)
不同的错误消息来自不同的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
Run Code Online (Sandbox Code Playgroud)
的IntelliJ:
不兼容的类型.
必需:float
找到:double
日食:
类型不匹配:无法从double转换为float
BlueJ的:
可能
需要的精度损失:浮动; 发现:双倍
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |