Acabo de descubrir la función ECMAScript 7 a**b
como una alternativa para Math.pow(a,b)
( Referencia de MDN ) y encontré una discusión en esa publicación , en la que aparentemente se comportan de manera diferente. Lo probé en Chrome 55 y puedo confirmar que los resultados son diferentes.
Math.pow(99,99)
devoluciones 3.697296376497263e+197
mientras
99**99
devoluciones 3.697296376497268e+197
Entonces, registrar la diferencia Math.pow(99,99) - 99**99
da como resultado -5.311379928167671e+182
.
Hasta ahora se podría decir que es simplemente otra implementación, pero envolverla en una función se comporta diferente nuevamente:
function diff(x) {
return Math.pow(x,x) - x**x;
}
diff(99)
devoluciones de llamada 0
.
¿Por qué está pasando eso?
Como señaló xszaboj , esto se puede reducir a este problema:
var x = 99;
x**x - 99**99; // Returns -5.311379928167671e+182
`likethis`
para que sea legible y también evitar el problema de negrita / cursiva