Bug #11736
Updated by ko1 (Koichi Sasada) almost 9 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