Java 可能丢失精度错误与类型不匹配错误

Java 可能丢失精度错误与类型不匹配错误,java,java-7,Java,Java 7,因此,每个人都在发布,当他们编写以下代码时,他们会得到“可能的精度损失”错误: 我尝试了相同的代码,但编译失败,错误为“类型不匹配:无法从double转换为float”。我用Java7运行这个 有人知道发生了什么吗?30.123隐含着一个double。编译器告诉您,当您将double值分配给float变量时,将失去精度。成功 float c = 30.123f; 不同的错误消息来自不同的IDE。我把这一行放在一个文件中,在三个IDE中检查它,并试图从命令提示符编译它,我得到了四条不同的错误

因此,每个人都在发布,当他们编写以下代码时,他们会得到“可能的精度损失”错误:

我尝试了相同的代码,但编译失败,错误为“类型不匹配:无法从double转换为float”。我用Java7运行这个


有人知道发生了什么吗?

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。非常感谢:)