Issue #11947 has been reported by Lionel PERRIN.

----------------------------------------
Bug #11947: BigDecimal#coerce: unexpected behavior with Float
https://bugs.ruby-lang.org/issues/11947

* Author: Lionel PERRIN
* Status: Open
* Priority: Normal
* Assignee: 
* 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: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>