Я первый день изучаю Ruby по книге «Путь Ryby» и в первом же примере столкнулся с проблемой. Прошу прощения за подобный вопрос но рыть в интернете мне не просто так-как я не знаю английский. Под кодом суть проблемы.
# encoding: utf-8
print "Введите температуру и шкалу (C или F): "
str = gets
exit if str.nil? or str.empty?
str.chomp!
temp, scale = str.split(" ")
abort "#{temp} недопустимое число." if temp !~ /-?\d+/
temp = temp.to_f case scale
when "C", "c"
f = 1.8 * temp + 32
when "F", "f"
c = (5.0 / 9.0) * (temp - 32)
else
abort "Необходимо задать C или F."
end
if f.nil?
print "#{c} градусов C.\n"
else
print "#{f} градусов F.\n"
end
Версия Ruby ruby 1.9.3p0 (2011-10-30 revision 33570)
Запускаю: ruby temp.rb
Все работает задает вопрос: Введите температуру и шкалу (C или F):
Если пишу в конце «C» то: temp.rb:13:in `*': String can't be coerced into Float (TypeError) from temp.rb:13:in `<main>'
Если пишу в конце «F» то: temp.rb:15:in `<main>': undefined method `-' for «45»:String (NoMethodError)
Буду рад если мне помогут и объяснят.