aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport/lib/active_support/core_ext/float/rounding.rb
blob: 0d4fb87665da0178446d1d5ebb11f3fd08908c8b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Float
  alias precisionless_round round
  private :precisionless_round

  # Rounds the float with the specified precision.
  #
  #   x = 1.337
  #   x.round    # => 1
  #   x.round(1) # => 1.3
  #   x.round(2) # => 1.34
  def round(precision = nil)
    if precision
      magnitude = 10.0 ** precision
      (self * magnitude).round / magnitude
    else
      precisionless_round
    end
  end
end if RUBY_VERSION < '1.9'