Project

General

Profile

Actions

Bug #11947

closed

BigDecimal#coerce: unexpected behavior with Float

Added by lionel_perrin (Lionel PERRIN) over 8 years ago. Updated over 7 years ago.


Description

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

Actions

Also available in: Atom PDF

Like0
Like0Like0