Bug #11736
Updated by ko1 (Koichi Sasada) almost 10 years ago
Float(arg) → float
Returns arg converted to a float. Numeric types are converted directly, the rest are converted using arg.to_f. Converting nil generates a TypeError.
Strings are NOT converted using arg.to_f
~~~
'123_INVALID'.to_f
# => 123.0
~~~
~~~
Float('123_INVALID')
# => ArgumentError
~~~
This could be fixed by changing object.c like so:
~~~
- return DBL2NUM(rb_str_to_dbl(val, TRUE));
+ return DBL2NUM(rb_str_to_dbl(val, FALSE));
~~~
But it appears that this is desired behavior as there are many specs to ensure this strict validity checking. Please update the documentation to reflect this.
Thanks,
Brian