Class: BigDecimal
- Inherits:
-
Object
- Object
- BigDecimal
- Defined in:
- lib/big_decimal_yaml_fix.rb
Instance Method Summary collapse
Instance Method Details
#to_yaml(opts = {}) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/big_decimal_yaml_fix.rb', line 8 def to_yaml( opts = {} ) YAML::quick_emit( nil, opts ) do |out| # This emits the number without any scientific notation. # I prefer it to using self.to_f.to_s, which would loose precision. # # Note that YAML allows that when reconsituting floats # to native types, some precision may get lost. # There is no full precision real YAML tag that I am aware of. str = self.to_s if str == "Infinity" str = ".Inf" elsif str == "-Infinity" str = "-.Inf" elsif str == "NaN" str = ".NaN" end out.scalar( "tag:yaml.org,2002:float", str, :plain ) end end |