Issue #13880 has been updated by mrkn (Kenta Murata).

Status changed from Open to Assigned
Assignee set to mrkn (Kenta Murata)

----------------------------------------
Bug #13880: `BigDecimal(string)` should raise on invalid values in `string`
https://bugs.ruby-lang.org/issues/13880#change-68363

* Author: ojab (ojab ojab)
* Status: Assigned
* Priority: Normal
* Assignee: mrkn (Kenta Murata)
* Target version: 
* ruby -v: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
Right now `BigDecimal()` 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.



-- 
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>