Double
により大きい値が割り当てられた場合、Java はどのように状況を処理しDouble.MAX_VALUE
ますか?
標準的な動作が指定されていますか?
はい、言語仕様 #4.2.4で定義されています。
オーバーフローする浮動小数点演算は、符号付き無限大を生成します。
ダブルスの場合、結果は になりますDouble.POSITIVE_INFINITY
。
ただし、コンパイル時にそのような大きな値を double に代入しようとすると、コンパイル エラーが発生することに注意してください。
double d = 1e100; //ok
double d = 1e300 * 1e300; //Double.POSITIVE_INIFINITY
double d = 1e900; //does not compile
非常に大きな数を処理する必要がある場合は、 も使用できますBigDecimal
。