
浮動小数点数 (IEEE 754) 入門 - なぜ 0.1 + 0.2 は 0.3 にならないのか
約13分
プログラマが必ず一度はハマる二進浮動小数点の誤差を、IEEE 754 を一次ソースに解説します。なぜ十進の 0.1 が二進で正確に表せず 0.1 + 0.2 が 0.30000000000000004 になるのか、符号・指数部・仮数部の構成、単精度 (binary32) と倍精度 (binary64) のビット配分、特殊値 (無限大・NaN・非正規化数)、既定の最近接偶数丸めと機械イプシロン、そして等値比較を避ける・金額は整数で扱うといった実務の対処までをまとめます。