6

这是我的代码:

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

为什么所有这些?

4

2 回答 2

14

浮点字面量默认为double类型。并且将 double 值分配给 float 类型会导致一些精度错误。您可以将 of 更改typecdouble或在其末尾附加一个f以使其float如下所示:

float c = 30.123f;
于 2013-02-12T18:33:33.863 回答
2

double如果您在末尾指定不带 f 的浮点值,则默认情况下将其视为。

double d = 30.123;

对于浮点文字,您应该在浮点值的末尾附加 f 。

float c = 30.123f;
于 2013-02-12T18:35:01.480 回答