Float(float value)Javaの
ラッパー クラス Float で次の 2 つのコンストラクターを使用する方法の違いは何ですか。
Float (double value)
同様に、2 つのコンストラクター
Float(double value)と
Double(double value)
Float(float value)Javaの
ラッパー クラス Float で次の 2 つのコンストラクターを使用する方法の違いは何ですか。
Float (double value)
同様に、2 つのコンストラクター
Float(double value)と
Double(double value)
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ます。
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;
Float(float 値) と Float (double 値) の間に特定の違いはありません。後者は double パラメーターを float 表現にキャストするだけです。
このメソッドのソース コードを参照してください。
public Float(float value) {
this.value = value;
}
public Float(double value) {
this.value = (float) value;
}
クロス型コンストラクターを持つことは、一方の精度の浮動小数点値があり、もう一方の精度を保持するオブジェクトが必要な場合に便利です。からdoubleに移動floatすると精度が失われ、 から に移動するとfloat精度doubleが向上します (ただし、格納されている実際の値はゼロで埋められます)。2 つのコンストラクターは、最初に他の精度に手動でキャストすることと同じです。