Java – InfinityとNaN

Infinity

実数のオーバーフローはInfinity

実数演算で最大値を超えるような演算をすると、結果がInfinityになる。最小値を下回る演算の場合は-InfinityInfinityのリテラルはない。

Infinityに対する数値の演算結果は直感的

Infinityに対して数値を加減乗除しても結果はInfinity。で、数学の∞と同じ。

数値からInfinityを減じると-InfinityInfinityで割ると0.0。lim[x→∞]と考えると直感的。

Infinity同士の演算

Infinity同士の加算・乗算はInfinityInfinity同士の減算・除算はNaN

Infinityと最大値

Infinityは実数の最大値より大きく、これと等しくはない。

Infinity同士の大小比較

InfinityInfinityと等しい。

Infinityの定数定義

Infinitydouble型とfloat型で定義されていて、それらの定数定義も準備されている。

double型とfloat型で、Infinity-Infinityはそれぞれ等しい。

NaN

計算結果が不定→NaN

実数演算でゼロ同士やInfinity同士の除算結果はNaN (Not a Number)になる。NaNのリテラルはない。

NaNを含む演算はNaN

NaNを含む四則演算の結果は全てNaN

NaN != NaN

NaN同士は互いに等しくない。大小関係は特定できない(>でも<でもない)。

NaNの定数定義

NaNdouble型とfloat型で定義されていて、それらの定数定義も準備されている。double型のNaNfloat型のNaNは等しくない(double型同士やfloat型同士と同じように)。

InfinityとNaN

InfinityNaNの演算結果はNaN

InfinityNaNは互いに等しくない。大小関係は特定できない(>でも<でもない)。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です