Bug #13880

Updated by ojab (ojab ojab) about 2 years ago

Right now `BigDecimal()` happily behaviour differs from `Integer()` and `Float()`:
2.4.1 :001 > require 'bigdecimal'
=> true
2.4.1 :002 > BigDecimal('1,')
=> 0.1e1
2.4.1 :003 > Integer('1,')
ArgumentError: invalid value for Integer(): "1,"
from (irb):3:in `Integer'
from (irb):3
from /home/ojab/.rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'
2.4.1 :004 > Float('1,')
ArgumentError: invalid value for Float(): "1,"
from (irb):4:in `Float'
from (irb):4
from /home/ojab/.rvm/rubies/ruby-2.4.1/bin/irb:11:in `<main>'

and right now AFAIU there is no way to convert, for example, String to BigDecimal with validation.

I think that `BigDecimal()` should likewise raise for consistency, 'bigdecimal/util' & `.to_d` can be used for conversion without checks analogous to `.to_f`/`.to_i`/etc.