Bug #13880

Updated by ojab (ojab ojab) over 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.