Class: Complex

Inherits:
Numeric
  • Object
show all
Defined in:
lib/bigdecimal/util.rb

Instance Method Summary collapse

Instance Method Details

#to_d(*args) ⇒ Object

call-seq:

cmp.to_d             -> bigdecimal
cmp.to_d(precision)  -> bigdecimal

Returns the value as a BigDecimal.

The precision parameter is required for a rational complex number. This parameter is used to determine the number of significant digits for the result.

require 'bigdecimal'
require 'bigdecimal/util'

Complex(0.1234567, 0).to_d(4)   # => 0.1235e0
Complex(Rational(22, 7), 0).to_d(3)   # => 0.314e1

See also Kernel.BigDecimal.



157
158
159
160
161
162
163
164
165
166
167
# File 'lib/bigdecimal/util.rb', line 157

def to_d(*args)
  BigDecimal(self) unless self.imag.zero? # to raise eerror

  if args.length == 0
    case self.real
    when Rational
      BigDecimal(self.real) # to raise error
    end
  end
  self.real.to_d(*args)
end