Class: Rational
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
::Numeric
|
|
Instance Chain:
self,
::Numeric
|
|
Inherits: |
Numeric
|
Defined in: | ext/bigdecimal/lib/bigdecimal/util.rb |
Overview
::BigDecimal extends the native Rational
class to provide the #to_d method.
When you require ::BigDecimal in your application, this method will be available on Rational
objects.
Instance Method Summary
-
#to_d(precision) ⇒ bigdecimal
Converts a
Rational
to a ::BigDecimal.
Instance Method Details
#to_d(precision) ⇒ bigdecimal
Converts a Rational
to a ::BigDecimal.
The required precision
parameter is used to determine the amount of significant digits for the result. See BigDecimal#div for more information, as it is used along with the #denominator
and the precision
for parameters.
r = (22/7.0).to_r
# => (7077085128725065/2251799813685248)
r.to_d(3)
# => #<BigDecimal:1a44d08,'0.314E1',18(36)>
# File 'ext/bigdecimal/lib/bigdecimal/util.rb', line 121
def to_d(precision) if precision <= 0 raise ArgumentError, "negative precision" end num = self.numerator BigDecimal(num).div(self.denominator, precision) end