浮動小数点数は誤差を含みうるため、==による比較は注意が必要である。 必要に応じて、許容誤差を用いて比較する。

0.1 + 0.2 == 0.3 // false になることがある
  • 計算結果どうしの比較では、誤差の影響を受けやすい
  • 異なる型の浮動小数点同士の比較では、精度の違いにも注意が必要
  • リテラル相手でも、比較対象が計算結果なら注意が必要

浮動小数点の等しさの比較には、イプシロン(epsilon、0ではないが十分小さい値) を導入する。具体的には、二つの小数の差が、イプシロンの範囲に収まっているかを調べること等で実現する。 ただし、単純なイプシロン比較だけで足りない場合は、相対誤差も考える。

参考