From: Kenta Murata Date: 2011-08-10T19:20:31+09:00 Subject: [ruby-core:38891] [Ruby 1.9 - Bug #5179] Complex#rationalize and to_r with approximate zeros Issue #5179 has been updated by Kenta Murata. Assignee set to Kenta Murata 0.0 doesn't exactly represent zero. It may be 0.0+-10.0**(Float::MIN_10_EXP-17). BigDecimal(0) doesn't exactly represent zero, too. I believe this issue should be resolved by introducing Numeric#exact? and/or Numeric#inexact? methods. ---------------------------------------- Bug #5179: Complex#rationalize and to_r with approximate zeros http://redmine.ruby-lang.org/issues/5179 Author: Marc-Andre Lafortune Status: Open Priority: Normal Assignee: Kenta Murata Category: core Target version: ruby -v: r32354 Currently, Complex#rationalize and Complex#to_r raise a RangeError if the imaginary part is nonzero *or is a Float*. Note that a BigDecimal(0) is accepted, though: Complex(1, 0).to_r # => Rational(1,1) Complex(1, BigDecimal("0.0")).to_r # => Rational(1,1) Complex(1, 0.0).to_r # => RangeError This is inconsistent. I recommend not raising an error for 0.0 (Float or BigDecimal). Any objection? -- http://redmine.ruby-lang.org