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

164
Visualizações
Extraño problema de JS con la multiplicación por 100

Me he topado con el muy vilipendiado problema de aritmética de punto flotante. Estoy trabajando en un programa que usa moneda. Y poco a poco en el desarrollo de mi programa, me di cuenta de que la aritmética de punto flotante me estaba causando problemas. Así que decidí convertir los números de coma flotante utilizados para representar los valores en números enteros que, con suerte, evitarían problemas de lógica y comparación en el futuro...

Pero incluso este proceso de convertir los flotantes a enteros no va bien. Hay un valor en particular que está causando un problema. Me pregunto por qué este valor en particular. ¿Alguien tiene alguna sugerencia que sería una mejor manera de abordar este problema? No puedo usar ninguna biblioteca, es parte de un proyecto de evaluación.

Aquí está el código:

 function checkCashRegister(price, cash, cid) { price *= 100; cash *= 100; for (let i = 0; i < cid.length; i++) { cid[i][1] = cid[i][1] * 100; } console.log(price); console.log(cash); console.log(cid); } console.log( checkCashRegister(19.23, 200, [["PENNY", 1.01], ["NICKEL", 2.05], ["DIME", 3.1], ["QUARTER", 4.25], ["ONE", 90], ["FIVE", 55], ["TEN", 20], ["TWENTY", 60], ["ONE HUNDRED", 100]]) );

Y aquí está la salida a la consola:

 >> 1923 >> 20000 >> Array(9) 0: (2) ['PENNY', 101] 1: (2) ['NICKEL', 204.99999999999997] 2: (2) ['DIME', 310] 3: (2) ['QUARTER', 425] 4: (2) ['ONE', 9000] 5: (2) ['FIVE', 5500] 6: (2) ['TEN', 2000] 7: (2) ['TWENTY', 6000] 8: (2) ['ONE HUNDRED', 10000] length: 9 [[Prototype]]: Array(0)

Todo parece funcionar según lo planeado, excepto por el valor único, "Nickel" en la posición [1] en la matriz.

Realmente aprecio cualquier consejo sobre esto... o si alguien pudiera arrojar algo de luz sobre por qué este valor específico está jugando. Gracias. Cualquier ayuda es muy apreciada.

about 4 years ago · Juan Pablo Isaza
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