Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
Numeric
Converts a Rational to a BigDecimal. Takes an optional parameter
sig to limit the amount of significant digits. If a negative
precision is given, raise ArgumentError. The zero precision and implicit
precision is deprecated.
r = (22/7.0).to_r # => (7077085128725065/2251799813685248) r.to_d # => #<BigDecimal:1a52bd8,'0.3142857142 8571427937 0154144999 105E1',45(63)> r.to_d(3) # => #<BigDecimal:1a44d08,'0.314E1',18(36)>
# File bigdecimal/lib/bigdecimal/util.rb, line 99
def to_d(precision=0)
if precision < 0
raise ArgumentError, "negative precision"
elsif precision == 0
warn "zero and implicit precision is deprecated."
precision = BigDecimal.double_fig*2+1
end
num = self.numerator
BigDecimal(num).div(self.denominator, precision)
end