Java 可能丢失精度错误与类型不匹配错误
因此,每个人都在发布,当他们编写以下代码时,他们会得到“可能的精度损失”错误: 我尝试了相同的代码,但编译失败,错误为“类型不匹配:无法从double转换为float”。我用Java7运行这个Java 可能丢失精度错误与类型不匹配错误,java,java-7,Java,Java 7,因此,每个人都在发布,当他们编写以下代码时,他们会得到“可能的精度损失”错误: 我尝试了相同的代码,但编译失败,错误为“类型不匹配:无法从double转换为float”。我用Java7运行这个 有人知道发生了什么吗?30.123隐含着一个double。编译器告诉您,当您将double值分配给float变量时,将失去精度。成功 float c = 30.123f; 不同的错误消息来自不同的IDE。我把这一行放在一个文件中,在三个IDE中检查它,并试图从命令提示符编译它,我得到了四条不同的错误
有人知道发生了什么吗?
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: 可能的精度损失
必需:浮动;发现:双
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: 可能的精度损失
必需:浮动;发现:双
但我没有“精度损失”错误;我犯了一个不同的错误。在这个问题中(#14839320)这家伙有“精度损失”错误。所以我的问题是为什么我会有不同的错误?Java7是否改变了从Java6编译代码的方式?@RandaSbeity这只是不同的IDE给出了不同的错误消息。请看我答案的编辑。这很有意义。我正在使用eclipse。非常感谢:)但我没有“丢失精度”错误;我犯了一个不同的错误。在这个问题中(#14839320)这家伙有“精度损失”错误。所以我的问题是为什么我会有不同的错误?Java7是否改变了从Java6编译代码的方式?@RandaSbeity这只是不同的IDE给出了不同的错误消息。请看我答案的编辑。这很有意义。我正在使用eclipse。非常感谢:)