我如何在红宝石中得到两个变量?

时间:2015-03-05 17:55:15

标签: ruby variables math

我有变量heightdistance。它们由用户输入。我想将它们分开并将结果转换为新变量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)

任何帮助?

2 个答案:

答案 0 :(得分:3)

在计算之前,您需要确保distanceheight都是整数或浮点数。

我会在使用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,则非数字字符串(其中没有数字的字符串)将转换为零。