From: merch-redmine@... Date: 2020-01-17T01:18:04+00:00 Subject: [ruby-core:96919] [Ruby master Bug#5179] Complex#rationalize and to_r with approximate zeros Issue #5179 has been updated by jeremyevans0 (Jeremy Evans). As Numeric#exact? has been rejected, and BigDecimal is not a core class, I'm not sure what to do about this issue. @mrkn seems to recommend RangeError for `Complex(1, BigDecimal("0.0")).to_r` (the same as with `Complex(1, 0.0).to_r `). I think the bigdecimal library would have to override Kernel#Complex for that behavior. Would that be considered acceptable? ---------------------------------------- Bug #5179: Complex#rationalize and to_r with approximate zeros https://bugs.ruby-lang.org/issues/5179#change-83938 * Author: marcandre (Marc-Andre Lafortune) * Status: Assigned * Priority: Normal * Assignee: mrkn (Kenta Murata) * Target version: * ruby -v: r32354 * Backport: ---------------------------------------- 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? -- https://bugs.ruby-lang.org/ Unsubscribe: