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

211
Vistas
No puedo entender los resultados de estas simples adiciones en Javascript. ¿Hay algo como el redondeo que afecta?

En Javascript cuando hago las siguientes adiciones:

 console.log(42.458333333333336+21) console.log(42.458333333333336+22)

Esperaba que esto saliera:

 63.458333333333336 64.458333333333336

Pero no lo hace, sale:

 63.458333333333336 64.45833333333334

¿Qué pasa con eso entonces?

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

0

La diferencia en la visualización se debe al formato predeterminado de JavaScript de los números de punto flotante . JavaScript usa suficientes dígitos para distinguir de forma única el número de los valores representables adyacentes.

Cuando 42.458333333333336 aparece en el código fuente, se convierte al valor más cercano representable en el formato Number , que es 42.45833333333333570180911920033395290374755859375.

Sumar 21 a esto produce 63.458333333333333570180911920033395290374755859375. El siguiente Number más alto es 63.458333333333342807236476801335811614990234375. Si estos se redondearon a 16 dígitos decimales significativos, tendrían el mismo resultado, 63.4583333333333. Entonces, JavaScript redondea su resultado a 17 dígitos para distinguirlo, produciendo "63.458333333333336".

Cuando se suma 22 a 42.458333333333333570180911920033395290374755859375, el resultado es 64.458333333333342807236476801335811614990234375. Tenga en cuenta que esto pasó de 64, por lo que el exponente utilizado para representarlo en punto flotante de base dos ha aumentado. Eso significa que pierde algo de precisión absoluta. El resultado se redondeó para ajustarse al formato de punto flotante, por lo que la parte de la fracción cambió. El siguiente Number más bajo es 64.4583333333333285963817615993320941925048828125. Para estos dos números, solo se necesitan 16 dígitos significativos para distinguirlos, porque se redondean a 64.45833333333334 y 64.45833333333333. Entonces JavaScript produce "64.45833333333334".

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