В случае, если вам не нужно преобразовывать нулевые значения, я считаю методы to_i
и to_f
чрезвычайно полезными, поскольку они преобразуют строку либо в нулевое значение (если оно не преобразуется, либо в ноль), либо вфактическое значение Integer
или Float
.
"0014.56".to_i # => 14
"0014.56".to_f # => 14.56
"0.0".to_f # => 0.0
"not_an_int".to_f # 0
"not_a_float".to_f # 0.0
"0014.56".to_f ? "I'm a float" : "I'm not a float or the 0.0 float"
# => I'm a float
"not a float" ? "I'm a float" : "I'm not a float or the 0.0 float"
# => "I'm not a float or the 0.0 float"
EDIT2: будьте осторожны, целочисленное значение 0
не является ложным, оно соответствует действительности (!!0 #=> true
) (спасибо @prettycoder)
РЕДАКТИРОВАТЬ
А, только что узнал о темных случаях ... кажется, происходит, только если номер находится в первой позиции, хотя
"12blah".to_i => 12