编码新手,不确定我在这里做错了什么。这就是我到目前为止所拥有的:
put "Enter degrees in Celsius:"
Celsius = gets.chomp
def celsius_to_fahrenheit (c)
fahrenheit = (c * 9/5)+32
end
puts "The temperature is #{celsius_to_farenheit (Celsius)} in Farenheit"
编码新手,不确定我在这里做错了什么。这就是我到目前为止所拥有的:
put "Enter degrees in Celsius:"
Celsius = gets.chomp
def celsius_to_fahrenheit (c)
fahrenheit = (c * 9/5)+32
end
puts "The temperature is #{celsius_to_farenheit (Celsius)} in Farenheit"
这里是固定的:
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
是一个字符串,而不是一个 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
是因为 Ruby 试图变得花哨。如果你将一个字符串乘以一个整数 N,你会得到该字符串重复 N 次。
例如。"hello world" * 2 # hello worldhello world
这就是代码应该的样子。
puts "Enter degrees in Celsius:"
Celsius = gets.chomp.to_f
def celsius_to_farenheit (c)
fahrenheit = (c * 9/5)+32
end
puts "The temperature is #{celsius_to_farenheit (Celsius)} in Farenheit"
你正在做一些错误