Javascript中非整数幂的负数

时间:2012-01-14 11:36:20

标签: javascript math nan exponent

我正在编写一个脚本,必须在某一点做这样的事情: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计算负数的值到非整数幂?

1 个答案:

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