我正在尝试创建一个方法,将矩形/方形对角线的长度作为浮点数返回。但是,我的方法diagonal
似乎没有按预期工作。我想我已经遇到了障碍,想知道你是否有人知道如何处理这个问题。
class Rectangle
def initialize(width, length)
@width = width
@length = length
end
def perimeter
2*(@length + @width)
end
def area
@length * @width
end
def diagonal
# measure = Math.hypot(@length, @width)
measure = (@length.to_f ** 2) + (@width.to_f ** 2)
measure.hypot(@length, @width)
end
end
答案 0 :(得分:2)
问题似乎在这里:
def diagonal
# measure = Math.hypot(@length, @width)
measure = (@length.to_f ** 2) + (@width.to_f ** 2)
measure.hypot(@length, @width)
end
你似乎开始尝试用毕达哥拉斯自己来计算长度'方法,但然后尝试在float上调用hypot
方法。您有两种选择:
def diagonal
Math.hypot(@length, @width)
end
或
def diagonal
Math.sqrt((@length.to_f ** 2) + (@width.to_f ** 2))
end