Здесь зафиксировано:
puts "Enter degrees in Celsius:"
celsius = gets.chomp
def celsius_to_fahrenheit(c)
fahrenheit = (c.to_f * 9/5)+32
end
puts "The temperature is #{celsius_to_fahrenheit(celsius)} in Farenheit"
- Неправильно вызванная функция
celsius_to_farenheit
- Неправильно вызванная функция
put
(должно быть puts
) c
была String, а не int / float.Не могу сделать математику для строки - Цельсия была заглавной.Это плохая форма.Начало переменной с заглавной буквы обычно обозначает класс.Это не «неправильно», но это неправильно.
В целом, ваша самая большая ошибка - не читать журналы ошибок.Когда вы запустите программу, она выдаст ошибки, указывающие на ваши ошибки.Один за другим вы должны исправлять ошибки, пока ваша программа не скомпилируется / запустится.Не просто случайно исправить ошибки.Прочитайте сообщение, подумайте о том, что вы сделали и что вы пытаетесь сделать, затем исправьте ошибку.
Traceback (most recent call last):
test.rb:1:in `<main>': undefined method `put' for
main:Object (NoMethodError)
Did you mean? puts
putc
Это означает, что вы пытаетесь вызвать функцию (ошибочную функцию put) в верхней части файла.
Traceback (most recent call last):
test.rb:9:in `<main>': undefined method
`celsius_to_farenheit' for main:Object (NoMethodError)
Did you mean? celsius_to_fahrenheit
Тот же симптом, другое заболевание.
Traceback (most recent call last):
1: from test.rb:9:in `<main>'
test.rb:6:in `celsius_to_fahrenheit':
undefined method `/' for "666666666":String (NoMethodError)
Посмотрите, как это говорит мне все, что мне нужно знать?
Я преобразовал это значение "c" вплавать.По умолчанию ввод пользователя должен интерпретироваться как строка.Вы должны «преобразовать» (преобразовать) переменную в число с плавающей точкой, если вы хотите, чтобы ввод пользователя интерпретировался как число с плавающей точкой, а не как строка.
Причина, по которой вы видите 666666666
, заключается в том, что Руби пытается быть модной.Если вы умножаете строку на int, N, вы получите эту строку, повторенную N раз.
напр."hello world" * 2 # hello worldhello world