Pregunta

Estoy escribiendo un guión que tiene que hacer algo como esto en un momento: Math.pow(-2,1.5). El resultado debe ser aproximadamente -2.82843, pero en su lugar, JavaScript regresa NaN. (Intenté esto tanto en Google Chrome 17 como en Mozilla Firefox 11.) Si el exponente es un entero, como en Math.pow(-2,3), entonces JavaScript devolverá la respuesta correcta, que, en este caso, es -8. Los números positivos también aumentan correctamente a los poderes no inteligentes; Math.pow(2,1.5) evalúa aproximadamente 2.8284271247461903. ¿Hay alguna forma de que JavaScript calcule el valor de un número negativo a una potencia no inteligente?

¿Fue útil?

Solución

Math.pow(-2, 1.5) Devuelve Nan porque no hay un número real que sea igual a -2 llevado a la potencia 1.5. Hay un número complejo con esta propiedad, pero Math.pow() No hace cálculos usando números complejos.

Esta simple transformación demuestra que este es el caso:

(-2)1.5 = (-2)1 * (-2)0.5 = (-2) * sqrt (-2) = (-2) * i * sqrt (2) = -2i * sqrt (2)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top