From: muraken@... Date: 2016-01-06T09:26:07+00:00 Subject: [ruby-core:72729] [Ruby trunk - Bug #11947] [Assigned] BigDecimal#coerce: unexpected behavior with Float Issue #11947 has been updated by Kenta Murata. Status changed from Open to Assigned Assignee set to Kenta Murata ---------------------------------------- Bug #11947: BigDecimal#coerce: unexpected behavior with Float https://bugs.ruby-lang.org/issues/11947#change-55978 * Author: Lionel PERRIN * Status: Assigned * Priority: Normal * Assignee: Kenta Murata * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- I've noticed that: ~~~ BigDecimal('2') + 1 # => BigDecimal(3), OK 1 + BigDecimal('2') # => BigDecimal(3), OK # whereas BigDecimal('2') + 1.1 # => BigDecimal(3.1), OK 1.1 + BigDecimal('2') # => Float(3.1), WHY? ~~~ I was expecting the latest to return a BigDecimal but it retuns a Float. In the unit tests for bigdecimal, one can find the following test: ~~~ assert_equal(2, 1 + BigDecimal.new("1"), '[ruby-core:25697]') ~~~ May be this behavior is required but I haven't found any reason for this. Regards, Lionel -- https://bugs.ruby-lang.org/ Unsubscribe: