class Complex
Public Class Methods
Source
# File vendor/bundle/ruby/3.4.0/gems/json-2.15.2/lib/json/add/complex.rb, line 9 def self.json_create(object) Complex(object['r'], object['i']) end
See as_json.
Public Instance Methods
Source
# File vendor/bundle/ruby/3.4.0/gems/json-2.15.2/lib/json/add/complex.rb, line 29 def as_json(*) { JSON.create_id => self.class.name, 'r' => real, 'i' => imag, } end
Methods Complex#as_json and Complex.json_create may be used to serialize and deserialize a Complex object; see Marshal.
Method Complex#as_json serializes self, returning a 2-element hash representing self:
require 'json/add/complex' x = Complex(2).as_json # => {"json_class"=>"Complex", "r"=>2, "i"=>0} y = Complex(2.0, 4).as_json # => {"json_class"=>"Complex", "r"=>2.0, "i"=>4}
Method JSON.create deserializes such a hash, returning a Complex object:
Complex.json_create(x) # => (2+0i) Complex.json_create(y) # => (2.0+4i)
Source
# File vendor/bundle/ruby/3.4.0/gems/bigdecimal-3.3.1/lib/bigdecimal/util.rb, line 164 def to_d(precision=0) BigDecimal(self) unless self.imag.zero? # to raise error BigDecimal(self.real, precision) end
Returns the value as a BigDecimal. If the imaginary part is not 0, an error is raised
The precision parameter is used to determine the number of significant digits for the result. When precision is set to 0, the number of digits to represent the float being converted is determined automatically. The default precision is 0.
require 'bigdecimal' require 'bigdecimal/util' Complex(0.1234567, 0).to_d(4) # => 0.1235e0 Complex(Rational(22, 7), 0).to_d(3) # => 0.314e1 Complex(1, 1).to_d # raises ArgumentError
See also Kernel.BigDecimal.
Source
# File vendor/bundle/ruby/3.4.0/gems/json-2.15.2/lib/json/add/complex.rb, line 48 def to_json(*args) as_json.to_json(*args) end
Returns a JSON string representing self:
require 'json/add/complex' puts Complex(2).to_json puts Complex(2.0, 4).to_json
Output:
{"json_class":"Complex","r":2,"i":0}
{"json_class":"Complex","r":2.0,"i":4}