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型です。また、float型にdouble値を割り当てると、精度エラーが発生します。typeofcをに変更するか、最後にをdouble追加して次のようにすることができます。ffloat

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

最後にfを付けずにfloat値を指定すると、doubleデフォルトでどちらかとして扱われます。

double d = 30.123;

floatリテラルの場合、float値の最後にfを追加する必要があります。

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