なかだです。

ruby-devに振ります。StringからInteger,Floatへの変換を関数やメソッ
ド、parserで統一しようという話です。

At Fri, 25 Jan 2002 16:57:42 +0900,
matz / ruby-lang.org (Yukihiro Matsumoto) wrote:
> まず、仕様を決めて、それから実装について考えましょう。
> 
> で、繰り返しになりますが、Integer()とFloat()については「数字
> と数字の間に連続しない _ を許す」というのではどうだろうか、
> というのが私の考えです。
> 
> to_iとto_fについてはまだ決めていません。選択肢としては
> 
>  (1) _ の処理については Integer()/Float() と同様、基準を満た
>     さないものはゼロになる。
> 
>  (2) こちらは連続する _ を許す、つまり文字列から _ を取り除
>      いてから整数化あるいは浮動小数点数化する
> 
> のいずれかくらいかなあと思います。個人的には前者に心引かれて
> います。って、こういう話は ruby-dev でした方が良いのかな。

こんな感じでしょうか。

* eval/parser, Integer(), Float()
  各数字間に高々一個の'_'が許される。符号の後、'.','e'の前後(浮
  動少数点数の場合)には許されない。

* String#oct, String#hex, String#bin
  基数を限定する以外はInteger()と同じ。octでは2,8,16進数の自動
  判別。

* String#to_i(radix = 10)
  radixを基数として変換する。有効な基数は2,8,10,16。8を指定して
  も#octと違ってprefixは見ない。例外を発生させるかわりに0を返す。

* String#to_f
  Float()と同じだが、例外を発生させるかわりに0.0を返す。

# こうしてみるとString#decとString#floatが欲しいかも。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦