这个表达有什么不对?

时间:2014-09-15 11:52:53

标签: ruby

这是我的表达

Math.sqrt((4.5-4.0 ** 2) + (1.0 - 2.0 ** 2))

我得到了这个

Math::DomainError: Numerical argument is out of domain - "sort"

怎么了?

2 个答案:

答案 0 :(得分:3)

因为乘法在加法之前进行了求值,所以括号中的表达式结果为负,而ruby不会取负数的平方根。

答案 1 :(得分:1)

我认为你可能想写:

Math.sqrt( (4.5-4.0)**2 + (1.0 - 2.0)**2 )

如前所述,你试图取负数的平方根, 它不适用于任何标准编程语言。