可能会丢失java中的精度错误
这是我的代码:
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
为什么这些?
浮点文字默认为double
类型。 将double值赋给float类型会导致一些精度错误。 您可以将c
的type
更改为double
,或者在其末尾附加f
以使其float
如下所示:
float c = 30.123f;
如果在结尾处指定不带f的float值,则将其视为double
,这是默认值。
double d = 30.123;
对于float literal,您应该在float值的末尾附加f。
float c = 30.123f;