矩形的红宝石对角线

时间:2015-05-12 02:49:04

标签: ruby math diagonal

我正在尝试创建一个方法,将矩形/方形对角线的长度作为浮点数返回。但是,我的方法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

1 个答案:

答案 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