Issue #11736 has been updated by Usaku NAKAMURA.

Backport changed from 2.1: UNKNOWN, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: UNKNOWN, 2.2: DONE, 2.3: REQUIRED

ruby_2_2 r56501 merged revision(s) 56421,56422.

----------------------------------------
Bug #11736: Float(arg) not consistent with documentation
https://bugs.ruby-lang.org/issues/11736#change-61080

* Author: Brian Wheeler
* Status: Closed
* Priority: Normal
* Assignee: Hiroshi SHIBATA
* ruby -v: ruby 2.1.5p273
* Backport: 2.1: UNKNOWN, 2.2: DONE, 2.3: REQUIRED
----------------------------------------
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


---Files--------------------------------
0001-Improve-documentation-on-Float-Arg.patch (1.25 KB)


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