From: "nobu (Nobuyoshi Nakada)" Date: 2013-12-03T14:38:07+09:00 Subject: [ruby-core:58826] [ruby-trunk - Bug #9192][Assigned] Inconsistent comparison between Float and BigDecimal Issue #9192 has been updated by nobu (Nobuyoshi Nakada). Category set to ext Status changed from Open to Assigned Assignee set to mrkn (Kenta Murata) BigDecimal converts Float with to_r, and 706.06.to_r returns (1552642359815045/2199023255552). But Float#to_r doesn't consider that Float is inexact, this is not equal to 706.06. Converting by rb_flt_rationalize_with_prec() seems solving this issue, but makes BigDecimal test stuck. ---------------------------------------- Bug #9192: Inconsistent comparison between Float and BigDecimal https://bugs.ruby-lang.org/issues/9192#change-43390 Author: vatsu (Gustavo Sales) Status: Assigned Priority: Normal Assignee: mrkn (Kenta Murata) Category: ext Target version: ruby -v: 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin11.4.2] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN I was checking a possible inconsistency on ActiveModel and I found situations where comparing BigDecimal to Float differs to comparing Float to BigDecimal. I have create a simple ruby script to exemplify the problem. The script is attach to this issue and output is as follows: Instance number 706.05 ########### Instance number 706.06 Inconsistence: 0.70606E3 > 706.06 706.06 < 0.70606E3 ========= Inconsistence: 0.70606E3 <= 706.06 706.06 >= 0.70606E3 ========= ########### Instance number 706.07 Inconsistence: 0.70607E3 < 706.07 706.07 > 0.70607E3 ========= Inconsistence: 0.70607E3 >= 706.07 706.07 <= 0.70607E3 ========= ########### Instance number 706.08 ########### -- http://bugs.ruby-lang.org/