123456789_123456789_123456789_123456789_123456789_

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

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)>
[ GitHub ]

  
# 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