【Ruby3.x】Float::EPSILON定数の使い方
EPSILON定数の使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
EPSILON定数は、RubyのFloatクラスに属する定数で、浮動小数点数演算における誤差の許容範囲を示す重要な値を表す定数です。
浮動小数点数とは、小数点以下の値を含む数値をコンピュータで扱う形式のことです。しかし、コンピュータは限られたメモリとビット数で数値を表現するため、特に小数点以下の複雑な値については、ごくわずかな丸め誤差が生じることが避けられません。
このEPSILON定数は、具体的には1.0と、1.0に次いで表現できる最小の浮動小数点数の差を示しています。つまり、浮動小数点数で表現できる最小の「意味のある違い」の基準の一つと考えることができます。
システムエンジニアを目指す初心者の方が特に注意すべき点は、浮動小数点数の比較です。通常の整数のようにa == bと直接比較すると、前述の丸め誤差のために、本来同じ値と見なすべきものが異なると判断されてしまう可能性があります。
このような問題を回避し、浮動小数点数の比較を安全に行うためには、abs(a - b) < Float::EPSILONのように、二つの浮動小数点数の差の絶対値がEPSILON定数よりも小さい場合に、それらの値を「ほぼ等しい」と判断する方法が推奨されます。この定数を活用することで、浮動小数点数に起因する予期せぬ動作を防ぎ、より信頼性の高いプログラムを記述することができます。
構文(syntax)
1Float::EPSILON
引数(parameters)
引数なし
引数はありません
戻り値(return)
Float
Float::EPSILONは、浮動小数点数で表現できる最も小さい正の数であり、1.0との差がこれ以下になるような、1.0に最も近い浮動小数点数を表します。