Ruby 4.1 リファレンスマニュアル

instance method Float#rationalize

rationalize -> RationalRuby 1.9.3 から[permalink][rdoc][edit]
rationalize(eps) -> Rational

self から eps で指定した許容誤差の範囲に収まるような、できるだけ簡潔な Rational を返します。

eps を省略した場合は、self の浮動小数点数としての精度に基づいて許容誤差が自動的に決定され、その範囲に収まる簡潔な Rational を返します。そのため Float#to_r が返す厳密な値とは異なります。誤差のない厳密な値が必要な場合は Float#to_r を使ってください。

[PARAM] eps:
許容する誤差
p 0.3.rationalize        # => (3/10)
p 0.3.to_r               # => (5404319552844595/18014398509481984)
p 1.333.rationalize      # => (1333/1000)
p 1.333.rationalize(0.01)  # => (4/3)

[SEE_ALSO] Float#to_r