我正在尝试确定一个人是否可以根据他们的身高参加活动。如果它们的高度以厘米/英寸/无论什么是完美的正方形,那么它们可以去,如果不是,它们就不能。这就是我现在所拥有的:
print "Input height here:"
def height_input
input = gets.to_i
input**0.5
end
if height_input.integer?
print "Congrats, you're in!"
else
print "Sorry, we can't let you in."
end
if
语句不能按我想要的方式工作,因为该方法返回一个浮点值(例如:input = 64
=> 8.0
)而不是整数。如果我在方法的末尾添加(to_i
),或者如果我调用方法使值为整数,它会以整数形式给出根的第一个数字。如果我确实有一个完美的正方形,那也不错,但如果它不是一个完美的正方形,那么我得到的结果就像我做的那样。帮助
答案 0 :(得分:3)
if (height_input % 1).zero?
或
if height_input.to_i == height_input
答案 1 :(得分:0)
在ruby中,方法块中的最后一个语句是它的返回值。
def height_input
input = gets.to_i
input**0.5
end
这意味着(input ** 0.5)
是在这里返回的内容。这将返回一个浮点数。我们还需要将它转换为整数
(input ** 0.5).to_i
现在,返回值为8
。