可能丢失的精度误差与类型不匹配误差



所以每个人都在发帖说,当他们编写以下代码时,他们会收到"可能丢失精度"错误:

float c= 30.123;

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

有人知道发生了什么吗?

30.123

含地是一个double。 编译器告诉您,当您将double值分配给float变量时,您会失去精度。 来得及

float c = 30.123f;

基元数据类型


不同的错误消息来自不同的 IDE。 我将该行放在一个文件中,并在三个 IDE 中检查它,并尝试从命令提示符编译它,我收到了四条不同的错误消息。

命令提示符:

C:UsersBillDesktop>javac Num.java  
Num.java:5: error: possible loss of precision  
       float c= 30.123;  
                ^  
  required: float  
  found:    double  
1 error  

IntelliJ:

不兼容的类型。
必需:浮点
数 发现:双

日蚀:

类型不匹配:无法从双精度转换为浮点数

蓝J:

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

最新更新