Rubyで文字列が数字変換可能か調べたい。引数とか文字列で取っておいて数字に変換できるか。
String#to_i のこの仕様が死ぬほど嫌だ
"3".to_i #=> 3 "2".to_i #=> 2 "1".to_i #=> 1 "0".to_i #=> 0 "a".to_i #=> 0 ←!!!
to_i して 0ならダメってやろうとして、詰んだ。
String#to_iやto_fはある程度は判別できるけど。。。
じゃぁ元々0は?
じゃぁ・・・ 0.1は?
ってなるので、こまる。to_f か、to_iかそこが問題だ。
別解 Interger("文字列") を使う解決方法もあった。
Integerを使う。
http://eity.que.jp/wordpress/archives/762
Integer("a")
ArgumentError: invalid value for Integer: "a"
from (irb):1:in `Integer'
from (irb):1
Integer(“a”)をするとエラーになるので、それを使う。悪くないけど、 rescueが面倒
1.9でも改善されてないかなぁ
もっといい方法ないんかいな is_numeric はPHPの偉大な発明だとおもうわ。便利だなぁ。