这是我的代码:
class test{
public static void main(String arg[]){
int a=10, b=20;
float c = 30.123;
int e = (int)c;
System.out.println(e);
}
}
我收到了这个错误:
test.java:6: error: possible loss of precision
float c = 30.123;
^
required: float
found: double
1 error
为什么这些?
答案 0 :(得分:13)
浮点文字默认为double
类型。将double值赋给float类型会导致一些精度错误。您可以将type
的{{1}}更改为c
,也可以在其末尾追加double
,使其成为f
,如下所示:
float
答案 1 :(得分:2)
如果在末尾指定不带f的float值,则将其视为double
,这是默认值。
double d = 30.123;
对于float literal,你应该在float值的末尾追加f。
float c = 30.123f;