2

Float(float value)Javaの ラッパー クラス Float で次の 2 つのコンストラクターを使用する方法の違いは何ですか。 Float (double value)

同様に、2 つのコンストラクター Float(double value)Double(double value)

4

4 に答える 4

3

Float(float)コンストラクターは、指定された値でラッパー オブジェクトを作成しますFloat。コンストラクターは、Float(double)指定された引数を にキャストして と オブジェクトを作成しfloat、値の精度の一部を失いdoubleます。ソースから:

public Float(float value) {
        this.value = value;
}

public Float(double value) {
        this.value = (float)value;
}

一方Double(double)、コンストラクターは、指定さDoubleれた値でラッパー オブジェクトを作成しdoubleます。

于 2013-08-19T12:58:11.023 に答える
2

ソースコードを見てみましょう

     public More ...Float(float value) {
480        this.value = value;
481    }


Constructs a newly allocated Float object that represents the argument converted to type float.
Parameters:
value the value to be represented by the Float.
488
489    public More ...Float(double value) {
490        this.value = (float)value;
491    }

キャストするだけthis.value = (float)value;

于 2013-08-19T13:00:03.687 に答える
1

Float(float 値) と Float (double 値) の間に特定の違いはありません。後者は double パラメーターを float 表現にキャストするだけです。

このメソッドのソース コードを参照してください。

public Float(float value) {
    this.value = value;
}

public Float(double value) {
    this.value = (float) value;
}
于 2013-08-19T13:00:20.777 に答える
0

クロス型コンストラクターを持つことは、一方の精度の浮動小数点値があり、もう一方の精度を保持するオブジェクトが必要な場合に便利です。からdoubleに移動floatすると精度が失われ、 から に移動するとfloat精度doubleが向上します (ただし、格納されている実際の値はゼロで埋められます)。2 つのコンストラクターは、最初に他の精度に手動でキャストすることと同じです。

于 2013-08-19T12:59:22.573 に答える