我有变量height
和distance
。它们由用户输入。我想将它们分开并将结果转换为新变量ratio
。
print "How high are you?"
height = gets.chomp
print "How far are you from the landing strip?"
distance = gets.chomp
ratio = distance.to_f / height
当我尝试运行它时,它只是告诉我
`/': String can't be coerced into Float (TypeError)
任何帮助?
答案 0 :(得分:3)
在计算之前,您需要确保distance
和height
都是整数或浮点数。
我会在使用gets.to_f
输入后立即将变量转换为Floats(不需要.chomp
,因为to_f
也会删除换行符):
print "How high are you?"
height = gets.to_f
print "How far are you from the landing strip?"
distance = gets.to_f
ratio = distance / height
答案 1 :(得分:2)
您收到此错误,因为高度仍然是一个字符串。这意味着您将float(distance.to_f)除以字符串(height)。
要解决此问题,请使用to_f:
将高度转换为数字`ratio = distance.to_f / height.to_f`
同样最好检查输入的值是否实际为数字。默认情况下,如果您调用to_f或to_i,则非数字字符串(其中没有数字的字符串)将转换为零。