【Ruby】 整数と実数の判定を思いつきで。
書いてみました。スマートさの欠片もありませんがね。
私ならこう書くyp!というのがあればドシドシお願いします。
def check_numerical_value value value_class = value.class.to_s if 'String' == value_class values = value.split '.' if 1 < values.length begin Float(value) result = 'float' rescue result = 'string' end else begin Integer(value) result = 'integer' rescue result = 'string' end end elsif 'Fixnum' == value_class result = 'integer' elsif 'Float' == value_class result = 'float' end end
・結果
p check_numerical_value('hoge') => "string" p check_numerical_value('10') => "integer" p check_numerical_value('10.0') => "float" p check_numerical_value('') => "string" p check_numerical_value(10) => "integer" p check_numerical_value(10.0) => "float"