Numero negativo alla potenza non intero in JavaScript
-
28-10-2019 - |
Domanda
Sto scrivendo una sceneggiatura che deve fare qualcosa del genere ad un certo punto: Math.pow(-2,1.5)
. Il risultato dovrebbe essere di circa -2.82843, ma invece JavaScript ritorna NaN
. (L'ho provato sia in Google Chrome 17 che in Mozilla Firefox 11.) Se l'esponente è un numero intero, come in Math.pow(-2,3)
, quindi JavaScript restituirà la risposta giusta, che, in questo caso, è -8. I numeri positivi aumentano anche correttamente a poteri non interi; Math.pow(2,1.5)
Valuta circa 2.8284271247461903. Esiste un modo in cui posso ottenere JavaScript per calcolare il valore di un numero negativo a una potenza non intero?
Soluzione
Math.pow(-2, 1.5)
Restituisce NAN perché non esiste un numero reale che equivale a -2 portato alla potenza 1.5. C'è un numero complesso con questa proprietà, ma Math.pow()
Non esegue calcoli usando numeri complessi.
Questa semplice trasformazione dimostra che questo è il caso:
(-2)1.5 = (-2)1 * (-2)0.5 = (-2) * sqrt (-2) = (-2) * i * sqrt (2) = -2i * sqrt (2)