Javascript中非整数幂的负数

wec*_*sam 2 javascript math nan exponent

我正在编写一个脚本,必须在某一点做这样的事情:Math.pow(-2,1.5).结果应该是大约-2.82843,但Javascript返回NaN.(我在Google Chrome 17和Mozilla Firefox 11中都试过这个.)如果指数是整数,例如in Math.pow(-2,3),则Javascript将返回正确的答案,在本例中为-8.正数也正确地提升到非整数幂; Math.pow(2,1.5)评估约为2.8284271247461903.有什么方法可以让Javascript计算负数的值到非整数幂?

Ada*_*man 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)

  • -2 ^ 1.5与Math.pow(-2,1.5)不同.后者是(-2)^ 1.5.-2 ^ 1.5的JavaScript表达式是-Math.pow(2,1.5),它不会返回NaN. (2认同)