我正在编写一个脚本,必须在某一点做这样的事情:Math.pow(-2,1.5)
。结果应该是大约-2.82843,但Javascript返回NaN
。 (我在Google Chrome 17和Mozilla Firefox 11中都尝试过这种方法。)如果指数是整数,例如在Math.pow(-2,3)
中,则Javascript将返回正确的答案,在本例中为-8。正数也正确地提升到非整数幂; Math.pow(2,1.5)
的评估值约为2.8284271247461903。有什么方法可以让Javascript计算负数的值到非整数幂?
答案 0 :(得分:8)
Math.pow(-2, 1.5)
返回NaN,因为没有实数等于-2取得1.5的幂。此属性有一个复数,但Math.pow()
不使用复数进行计算。
这个简单的转换证明了这种情况:
( - 2) 1.5 =( - 2) 1 *( - 2) 0.5 =( - 2)* sqrt( - 2)=( - 2)* i * sqrt(2)= -2i * sqrt(2)