Actions
Bug #13105
closed`String#to_f` and `String#to_r` don't stop at successive underscores
Description
Integer()
, Float()
and Rational()
errs at successive underscores, and String#to_i
stops the conversion there.
But String#to_f
and String#to_r
continue the conversion like as there were just one underscore.
Is this intentional?
"1_2".to_i #=> 12
"1__2".to_i #=> 1
"1.__2".to_f #=> 1.2
"0.1__2".to_r #=> (3/25) == 0.12
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Subject changed from `String#to_f` and `String#to_r` don't stop successive underscores to `String#to_f` and `String#to_r` don't stop at successive underscores
Updated by matz (Yukihiro Matsumoto) over 7 years ago
- Assignee changed from matz (Yukihiro Matsumoto) to nobu (Nobuyoshi Nakada)
We should have more consistency here. to_i
and to_r
should be more restrictive on treating _
.
Namely,
-
_
should be within digits - only one
_
allowed between digits
Matz.
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Status changed from Assigned to Closed
Applied in changeset r57979.
object.c: make String#to_f consistent with literal
-
object.c (rb_cstr_to_dbl): stop at successive underscores, as
well as Float literals. [ruby-core:80098] [Bug #13105]-
_
should be within digits - only one
_
allowed between digits
-
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Status changed from Closed to Open
- Assignee changed from nobu (Nobuyoshi Nakada) to matz (Yukihiro Matsumoto)
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Assignee changed from matz (Yukihiro Matsumoto) to nobu (Nobuyoshi Nakada)
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Status changed from Open to Closed
Applied in changeset r57987.
test_rational.rb: invalid exponent
- test/ruby/test_rational.rb (test_parse): more checks for invalid
exponent. [ruby-core:80098] [Bug #13105]
Updated by naruse (Yui NARUSE) over 7 years ago
- Backport changed from 2.2: REQUIRED, 2.3: REQUIRED, 2.4: REQUIRED to 2.2: WONTFIX, 2.3: WONTFIX, 2.4: WONTFIX
Actions
Like0
Like0Like0Like0Like0Like0Like0Like0