Skip to content
instance method

Integer#floor

(?::int digits) -> ::Integer
floor(ndigits = 0) → integer

Returns an integer that is a “floor” value for self, as specified by the given ndigits, which must be an integer-convertible object.

  • When self is zero, returns zero (regardless of the value of ndigits):

    Example
    0.floor(2)  # => 0
    0.floor(-2) # => 0
    
  • When self is non-zero and ndigits is non-negative, returns self:

    Example
    555.floor     # => 555
    555.floor(50) # => 555
    
  • When self is non-zero and ndigits is negative, returns a value based on a computed granularity:

    • The granularity is 10 ** ndigits.abs.

    • The returned value is the largest multiple of the granularity that is less than or equal to self.

    Examples with positive self:

    ndigits Granularity 1234.floor(ndigits)
    -1 10 1230
    -2 100 1200
    -3 1000 1000
    -4 10000 0
    -5 100000 0

    Examples with negative self:

    ndigits Granularity -1234.floor(ndigits)
    -1 10 -1240
    -2 100 -1300
    -3 1000 -2000
    -4 10000 -10000
    -5 100000 -100000

Related: Integer#ceil.

See also #fdiv #gcd #even? #gcdlcm also in 4.1 · 3.4 · 3.3 · 3.2 · 3.1 · 3.0