Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 什么';这个表达有什么不对?_Ruby - Fatal编程技术网

Ruby 什么';这个表达有什么不对?

Ruby 什么';这个表达有什么不对?,ruby,Ruby,这是我的表情 Math.sqrt((4.5-4.0 ** 2) + (1.0 - 2.0 ** 2)) 我明白了 Math::DomainError: Numerical argument is out of domain - "sort" 怎么了?因为乘法是在加法之前计算的,括号中表达式的结果是负数,ruby不会取负数的平方根。我想你可能是想写: Math.sqrt( (4.5-4.0)**2 + (1.0 - 2.0)**2 ) 如前所述,你试图取一个负数的平方根, 这在任何标准编程语

这是我的表情

Math.sqrt((4.5-4.0 ** 2) + (1.0 - 2.0 ** 2))
我明白了

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

怎么了?

因为乘法是在加法之前计算的,括号中表达式的结果是负数,ruby不会取负数的平方根。

我想你可能是想写:

Math.sqrt( (4.5-4.0)**2 + (1.0 - 2.0)**2 )
如前所述,你试图取一个负数的平方根,
这在任何标准编程语言中都不起作用。

你添加了
要求“cmath”
?你不能传递负数,而
(4.5-4.0**2)+(1.0-2.0**2)#=>-14.5
是负数。也许我有点迂腐,但
**
是求幂运算符,而不是乘法。:-)