# '0\_2'.to\_i

**URL:** <https://www.ruby-forum.com/t/0-2-to-i/127464>\
**Category:** Development\
**Created:** [January 29, 2008, 3:11pm UTC](https://www.ruby-forum.com/t/0-2-to-i/127464 "2008-01-29T15:11:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tadayoshi\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/2bfe46/32.png) [@Tadayoshi\_F](https://www.ruby-forum.com/u/Tadayoshi_F)\
**Post date:** [January 29, 2008, 3:11pm UTC](https://www.ruby-forum.com/t/0-2-to-i/127464/1 "2008-01-29T15:11:58Z")

</div>

String#to\_i e$B$,@5$7$/5!G=$7$J$$$3$H$,$"$j$^$9!#e(Bruby  
e$B\<+?H$N;z6g2r\<a$H$be(B  
e$B0c$$$^$9!#$?$V$s!"e(B1.8 e$B$bF1$8$G$9!#e(B

$ ./ruby -v -e ‘p “0\_2”.to\_i’  
ruby 1.9.0 (2008-01-29 revision 0) [i386-freebsd6.2]  
0

e$B$3$s$J46$8$G$7$g$&$+!#e(B

# Index: bignum.c

— bignum.c (revision 15328)  
+++ bignum.c (working copy)  
@@ -438,7 +438,7 @@  
len = 2;  
break;  
case 8:

- if (str[0] == ‘0’ && (str[1] == ‘o’||str[1] == ‘O’||str[1] == ‘\_’)) {

- if (str[0] == ‘0’ && (str[1] == ‘o’||str[1] == ‘O’)) {  
str += 2;  
}  
case 4: case 5: case 6: case 7:  
@@ -470,7 +470,7 @@  
break;  
}  
if (_str == ‘0’) { /_ squeeze preceding 0s \*/

- while (\*++str == ‘0’);

- while (\*++str == ‘0’ || \*str == ‘\_’);  
if (!(c = \*str) || ISSPACE©) --str;  
}  
c = \*str;  
Index: test/ruby/test\_bignum.rb  
===================================================================  
— test/ruby/test\_bignum.rb (revision 15328)  
+++ test/ruby/test\_bignum.rb (working copy)  
@@ -147,6 +147,9 @@  
assert\_raise(ArgumentError) { Integer(“1\_\_”) }  
assert\_raise(ArgumentError) { Integer(“1\_0 x”) }  
assert\_equal(T31P, “1111111111111111111111111111111”.to\_i(2))
- assert\_equal(0\_2, ‘0\_2’.to\_i)
- assert\_equal(00\_2, ‘00\_2’.to\_i)
- assert\_equal(00\_02, ‘00\_02’.to\_i)  
end

def test\_to\_s2

---

<div class="post-metadata">

**Author:** ![Tadayoshi\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/2bfe46/32.png) [@Tadayoshi\_F](https://www.ruby-forum.com/u/Tadayoshi_F)\
**Post date:** [January 29, 2008, 4:34pm UTC](https://www.ruby-forum.com/t/0-2-to-i/127464/2 "2008-01-29T16:34:55Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:33506] ‘0\_2’.to\_i”  
on Tue, 29 Jan 2008 23:11:00 +0900, Tadayoshi F.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|String#to\_i e$B$,@5$7$/5!G=$7$J$$$3$H$,$"$j$^$9!#e(Bruby e$B\<+?H$N;z6g2r\<a$H$be(B  
|e$B0c$$$^$9!#$?$V$s!"e(B1.8 e$B$bF1$8$G$9!#e(B

|e$B$3$s$J46$8$G$7$g$&$+!#e(B

|— bignum.c (revision 15328)  
|+++ bignum.c (working copy)

e$B%3%\_%C%H$7$F$/$@$5$$!#$?$@$7!"%F%9%H$rDI2C$9$k$N$Oe(B  
test/ruby/test\_integer.rbe$B$NJ}$,NI$$$+$b$7$l$^$;$s!#e(B

---

<div class="post-metadata">

**Author:** ![Tadayoshi\_F](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/2bfe46/32.png) [@Tadayoshi\_F](https://www.ruby-forum.com/u/Tadayoshi_F)\
**Post date:** [January 29, 2008, 5:07pm UTC](https://www.ruby-forum.com/t/0-2-to-i/127464/3 "2008-01-29T17:07:29Z")

</div>

> e$B%3%\_%C%H$7$F$/$@$5$$!#$?$@$7!"%F%9%H$rDI2C$9$k$N$Oe(B  
> test/ruby/test\_integer.rbe$B$NJ}$,NI$$$+$b$7$l$^$;$s!#e(B

test\_integer e$B$K$O!“e(BInteger()  
e$B$J$I$N%F%9%H$,$”$j$^$9$,!“e(BString#to\_i e$B$Ke(B  
e$B$D$$$F$O$J$5$=$&$G$9!#e(Btest\_string.rb  
e$B$+$J$H$b;W$C$?$s$G$9$,!”;w$?$h$&e(B  
e$B$J%F%9%H$,J,;6$7$F$$$k$h$&$G$9!#e(B

e$B$h$/$o$+$i$J$+$C$?$N$G!"$=$N$^$^%3%\_%C%H$7$^$7$?$,!"$h$/$J$+$C$?$i!"C/e(B  
e$B$+D\>$7$F$\*$$$F$/$@$5$$!#e(B
