誤差による精度の低下

実数が浮動小数点数で表現できない場合、最も近い浮動小数点数でその実数を表現する必要があります。丸め誤差とは、実際の実数と、その実数を表現する最も近い浮動小数点との差のことです。丸め誤差がゼロでない場合、丸められた浮動小数点数は、正確でない (inexact) といいます。

通常、結果の値が正確でない場合でも、計算は続行されます。ほぼすべての浮動小数点演算では、正確でない結果が発生する可能性があります。丸めモード (大きい方への丸め、小さい方への丸め、近い方への丸め、切り捨て) は、浮動小数点制御ワードによって決定されます。

算術演算の結果で、特定のデータ型では表現できない浮動小数点数が発生すると、特殊値 (符号付きゼロ、符号付き無限大、NaN、デノーマル値) が生成される場合があります。また、正確に表現可能な浮動小数点数に丸められた数値も特殊値となります。特殊値は、特定の状況における算術演算の結果です。特殊値は、プログラムを失敗させることなくそれ以降の算術演算で使用することができる値です。

算術演算の結果に例外が発生すると、演算ではアンダーフローまたはオーバーフローが発生します。

また、算術演算はゼロ除算例外、無効な例外、不正確例外を発行します。

浮動小数点制御ワードを設定することで、例外の処理方法を選択することができます。

関連情報