[#44237] Float を利用するRubyプログラム — SASADA Koichi <ko1@...>

 ささだです.

16 messages 2007/11/17
[#44241] Re: Float を利用するRubyプログラム — SASADA Koichi <ko1@...> 2007/11/19

 ささだです.

[ruby-list:44215] String#to_i(n) 仕様変更?

From: "T.Kitahara" <tko-k@...>
Date: 2007-11-12 13:43:18 UTC
List: ruby-list #44215
Kitaといいます。

ruby 1.8.6-p111 から String#to_i(n) の挙動が微妙に変わったようです。

 "0xff".to_i(16)   => 255
 "0x_ff".to_i(16)  => 0

となります。
以前は

  "0x_ff".to_i(16) も255 を返していました。

これは意図された変更でしょうか?


実行例:

 % ./ruby -ve 'p "0x_ff".to_i(16)'
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-freebsd6.2]
255

 % ./ruby -ve 'p "0x_ff".to_i(16)'
ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-freebsd6.2]
255

 % ./ruby -ve 'p "0x_ff".to_i(16)'
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6.2]
0

 % ./ruby -ve 'p "0x_ff".to_i(16)'
ruby 1.8.6 (2007-11-09 patchlevel 5000) [i386-freebsd6.2]
0


 % ./ruby -ve 'p "0xff".to_i(16)'
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-freebsd6.2]
255

 % ./ruby -ve 'p "0xff".to_i(16)'
ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-freebsd6.2]
255

 % ./ruby -ve 'p "0xff".to_i(16)'
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6.2]
255

 % ./ruby -ve 'p "0xff".to_i(16)'
ruby 1.8.6 (2007-11-09 patchlevel 5000) [i386-freebsd6.2]
255


# 0b...  0o...  0d...  でも同様です。


でも`0x'を付けないと変換してくれる。

 % ./ruby -ve 'p "_ff".to_i(16)'
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-freebsd6.2]
255



以上

In This Thread

Prev Next