Project

General

Profile

Bug #11736

Updated by ko1 (Koichi Sasada) over 8 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 

Back