Project

General

Profile

Bug #13833

String#scanf("%a") incorrectly requires a sign on the (binary) exponent

Added by cabo (Carsten Bormann) about 1 month ago. Updated 26 days ago.

Status:
Open
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-darwin16]
[ruby-core:82435]

Description

>> Float("0x1p9")
=> 512.0
>> Float("0x1p+9")
=> 512.0
>> "0x1p+9".scanf("%a")
=> [512.0]
>> "0x1p9".scanf("%a")
=> [0.0]                              # Oops
>> RUBY_VERSION
=> "2.4.1"

In scanf.rb, there are three regexps that say the equivalent of [pP][+-] where they should say [pP][+-]?

History

#1 [ruby-core:82568] Updated by tarotaro0 (kodai nakamura) 26 days ago

Hi, cabo.

I implemented to fix this bug and created PR:

https://github.com/ruby/ruby/pull/1689

Could you please check this?

Also available in: Atom PDF