Actions
Bug #11736
closedFloat(arg) not consistent with documentation
Description
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
Updated by ko1 (Koichi Sasada) almost 9 years ago
- Description updated (diff)
- Assignee set to zzak (zzak _)
Document is wrong.
Zack, could you fix it?
Updated by dpulliam (Dylan Pulliam) almost 9 years ago
- File 0001-Improve-documentation-on-Float-Arg.patch 0001-Improve-documentation-on-Float-Arg.patch added
- ruby -v set to ruby 2.1.5p273
I have prepared a patch for this. Let me know what you think.
Updated by hsbt (Hiroshi SHIBATA) about 8 years ago
- Status changed from Open to Closed
Applied in changeset r56421.
- object.c: Improve documentation for Integer conversion.
[ruby-core:71661][Bug #11736][ci skip]
Updated by hsbt (Hiroshi SHIBATA) about 8 years ago
- Assignee changed from zzak (zzak _) to hsbt (Hiroshi SHIBATA)
- Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.1: UNKNOWN, 2.2: REQUIRED, 2.3: REQUIRED
Updated by usa (Usaku NAKAMURA) about 8 years ago
- 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.
Updated by nagachika (Tomoyuki Chikanaga) about 8 years ago
- Backport changed from 2.1: UNKNOWN, 2.2: DONE, 2.3: REQUIRED to 2.1: UNKNOWN, 2.2: DONE, 2.3: DONE
ruby_2_3 r56722 merged revision(s) 56421,56422.
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
- Related to Bug #9574: Inconsistent behavior between Kernel#Float and to_f added
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0