Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

210
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda