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?

È stato utile?

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)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top