Project

General

Profile

Actions

Backport #7990

closed

printf and sprintf integer conversion failure of string for "08" and "09"

Added by daves (Dave Singer) about 11 years ago. Updated about 11 years ago.

Status:
Rejected
Assignee:
-
[ruby-core:53045]

Description

Happens consistently. Converting var to int explicitly first or removing the leading "0" allows it to work fine. Example:

2.0.0-p0 :004 > (0..10).each {|x|
2.0.0-p0 :005 > x=x.to_s
2.0.0-p0 :006?> printf("%s,%02d;", x, x)
2.0.0-p0 :007?> }
0,00;1,01;2,02;3,03;4,04;5,05;6,06;7,07;8,08;9,09;10,10; => 0..10
2.0.0-p0 :008 > (0..10).each {|x|
2.0.0-p0 :009 > x = sprintf("%02d", x)
2.0.0-p0 :010?> printf("%s,%02d;", x, x)
2.0.0-p0 :011?> }
00,00;01,01;02,02;03,03;04,04;05,05;06,06;07,07;ArgumentError: invalid value for Integer(): "08"
from (irb):10:in printf' from (irb):10:in block in irb_binding'
from (irb):8:in each' from (irb):8 from /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in '
2.0.0-p0 :012 > printf("%02d", "09")
ArgumentError: invalid value for Integer(): "09"
from (irb):12:in printf' from (irb):12 from /usr/local/rvm/rubies/ruby-2.0.0-p0/bin/irb:16:in '

Running on x64 centos 6.3
#rvm list

rvm rubies

=* ruby-2.0.0-p0 [ x86_64 ]

Actions

Also available in: Atom PDF

Like0
Like0