Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

116
Vistas
¿Por qué la adición pierde precisión cuando la asignación directa funciona para el tipo de datos numéricos de Javascript?

Considere un fragmento de código simple:

 let a = 0.1; let b = 0.2; let c = 0.3; let d = a + b; console.log(c.toString()); //0.3 console.log(d.toString()); //0.30000000000000004

La explicación que pude encontrar fue que 0.3 no se puede representar exactamente en un número de coma flotante de doble precisión. Pero si eso es cierto, ¿cómo puede c mantener el valor 0.3 sin perder precisión en caso de asignación directa ?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Ninguno de los dos puede representarse con precisión. Utilice este convertidor para ver lo que está pasando.

Los números de JavaScript se representan como números de 64 bits de doble precisión (IEEE754)

0.3 solo se interpreta como 0x3FD3333333333333 , que es, si calcula a mano:

 .299999999999999988897769753748...

Cuando se muestra como un decimal, se redondea a 0,3. No es que el valor almacenado sea exactamente igual a 0,3 (que se puede mostrar si intenta hacer más cálculos con él), sino que, cuando se muestra, se muestra como 0,3: está más cerca de 3 que del siguiente bit, que está en 2.9999999999999993 .

0.1 + 0.2 está un poco equivocado: el último dígito (en hexadecimal) es 4, no 3 . 0x3FD3333333333334 es:

 .300000000000000044408920985006...

De manera similar, no puede usar 0.300000000000000002 con asignación directa o registro directo, porque eso está entre los dos bits, y el intérprete debe elegir uno u otro:

 console.log(0.30000000000000002);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda