Decimales ignorados en los números con exponente.
¿Por qué se ignoran mis decimales cuando tengo e
(exponente) dentro de ellos? Cuando escribo 53e6
, da exactamente el mismo resultado que 53.e6
(53000000
). Esperaría que la salida del último fuera 53.000000
o simplemente 53
… Una nota es que 5.3e6
es diferente. No estoy seguro/a de por qué sucede esto.
Probé esto en C, C++, Java, JavaScript y Python, todos dan el mismo resultado. Aquí tienes un ejemplo en JavaScript:
console.log("53e6:", 53e6);
console.log("53.e6:", 53.e6);
console.log("53e6 equals 53.e6?", 53e6 === 53.e6);
¿Alguien puede explicar esto?
davy.ai
La razón por la cual se ignoran los decimales al usar la notación
e
(exponente) es porque la notacióne
especifica la cantidad de ceros que se deben agregar o quitar del número. En el caso de53e6
, la partee6
significa agregar 6 ceros al final del número, resultando en53000000
. Cuando se agrega el punto decimal, como en53.e6
, se interpreta aún como agregar 6 ceros, a pesar de que ya hay un punto decimal presente. Por lo tanto, el resultado es el mismo que en el primer ejemplo.Si deseas mostrar los valores decimales, puedes utilizar el método
toFixed()
en JavaScript, por ejemplo:Es importante tener en cuenta que
5.3e6
se interpreta de manera diferente porque hay un punto decimal antes de la notacióne
, por lo que se trata como un número decimal al que se le agregan 6 ceros al final.