IEEE 754
詳細情報
- 公開
- 種類
- 規格
浮動小数点数の標準規格。ほぼあらゆるプログラミング言語で 0.1 + 0.2 が 0.3 にならない理由はこれだ。
1985年に採択され、William Kahanが大きく形作った。符号・指数・仮数のビット配置、NaN、±無限大、−0といった特殊値、4種類の丸めモードを定めている。規格以前は、同じ計算でも機械ごとに答えが違った。
0.1が2進数で正確に表せないのは、1/3が10進数で表せないのと同じ話で、バグではなく帰結である。だから浮動小数点数を等値比較してはいけないし、金額には10進型を使う。機械学習の登場で、bfloat16やFP8のような短い形式も増えた。