0

因此,每个人都发布说,当他们编写以下代码时,会出现“可能丢失精度”错误:

float c= 30.123;

我尝试了相同的代码,但编译失败,出现此错误“类型不匹配:无法从双精度转换为浮点”。我正在使用 Java 7 运行它。

有谁知道发生了什么?

4

1 回答 1

6

30.123是隐含的double。编译器告诉您,当您doublefloat变量赋值时会丢失精度。做了

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:

可能需要的精度损失
:浮点数;发现:双

于 2013-10-19T01:06:26.673 回答