実数が浮動小数点数で表現できない場合、最も近い浮動小数点数でその実数を表現する必要があります。丸め誤差とは、実際の実数と、その実数を表現する最も近い浮動小数点との差のことです。丸め誤差がゼロでない場合、丸められた浮動小数点数は、正確でない (inexact) といいます。
通常、結果の値が正確でない場合でも、計算は続行されます。ほぼすべての浮動小数点演算では、正確でない結果が発生する可能性があります。丸めモード (大きい方への丸め、小さい方への丸め、近い方への丸め、切り捨て) は、浮動小数点制御ワードによって決定されます。
算術演算の結果で、特定のデータ型では表現できない浮動小数点数が発生すると、特殊値 (符号付きゼロ、符号付き無限大、NaN、デノーマル値) が生成される場合があります。また、正確に表現可能な浮動小数点数に丸められた数値も特殊値となります。特殊値は、特定の状況における算術演算の結果です。特殊値は、プログラムを失敗させることなくそれ以降の算術演算で使用することができる値です。
算術演算の結果に例外が発生すると、演算ではアンダーフローまたはオーバーフローが発生します。
アンダーフローは、算術の結果が算術プロセッサーには処理できないほど小さかった場合に発生します。/fpe コンパイラー・オプションの設定に応じて、アンダーフローはゼロに設定されるか (通常、問題はありません)、そのままの状態 (正規化されていない数) を維持します。
オーバーフローは、算術の結果が算術プロセッサーには処理できないほど大きかった場合に発生します。オーバーフローはアンダーフローより致命的な問題で、問題の定式化に間違いが含まれていることを示している可能性があります (例えば、意図せずに大きい数値でべき乗の計算を行ったなど)。オーバーフローは通常、適切な符号付き無限値を生成します (これは IEEE 標準ごとの丸めモードに依存します)。
また、算術演算はゼロ除算例外、無効な例外、不正確例外を発行します。
浮動小数点制御ワードを設定することで、例外の処理方法を選択することができます。