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

instance method Rational#floor

floor(precision = 0) -> Integer | Rational[permalink][rdoc][edit]

自身と等しいかより小さな整数のうち最大のものを返します。

[PARAM] precision:
計算結果の精度
[EXCEPTION] TypeError:
precision に整数以外のものを指定すると発生します。

p Rational(3).floor   # => 3
p Rational(2, 3).floor  # => 0
p Rational(-3, 2).floor # => -2

Rational#to_i とは違う結果を返す事に注意してください。


p Rational(+7, 4).to_i  # => 1
p Rational(+7, 4).floor # => 1
p Rational(-7, 4).to_i  # => -1
p Rational(-7, 4).floor # => -2

precision を指定した場合は指定した桁数の数値と、上述の性質に最も近い整数か Rational を返します。


p Rational('-123.456').floor(+1)     # => (-247/2)
p Rational('-123.456').floor(+1).to_f  # => -123.5
p Rational('-123.456').floor(0)      # => -124
p Rational('-123.456').floor(-1)     # => -130

[SEE_ALSO] Rational#ceil, Rational#round, Rational#truncate