这会导致这样的情况:
-1 ** 0.5 #=> -1
只有括号可以解决这个问题:
(-1) ** 0.5 #=> 6.123031769111886e-17+1.0i
这比预期的要差1.i
,但基本可以接受。在我去抱怨 Ruby bug 之前,我想知道是否有某种原因造成这种情况?
许多语言通过按照数学运算顺序建模来定义其运算符优先级表。在数学中,求幂确实比乘法和一元否定具有更高的优先级is毕竟是乘法。
来自马茨reply到“对数字进行平方时省略其符号”:
有数学背景的人要求**优先
高于一元负数。这就是原因。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)