Freecodecamp: Problema de mudança exata

Criado em 4 ago. 2016  ·  5Comentários  ·  Fonte: freeCodeCamp/freeCodeCamp

Nome do Desafio

https://www.freecodecamp.com/challenges/exact-change

descrição do problema

Tive problemas com este problema devido a cálculos imprecisos ao trabalhar com o valor "0,01". Às vezes, o valor de retorno do cálculo tinha um valor incorreto após 7 ou 8 casas decimais (por exemplo 1,01 - 0,01 = 0,9999999996).
Alguém mais teve problema semelhante?
Consegui resolver mas ainda demorei muito a fazê-lo devido a este problema que não devia acontecer ... Alguém tem alguma ideia do porquê. Minha opinião é que é devido à maneira que js salva valores inteiros e float ...

Informação do navegador

  • Nome do navegador, versão: Google Chrome, 52.0.2743.82 (64 bits)
  • Sistema operacional: Linux Ubuntu 16.04
  • Celular, desktop ou tablet: laptop

Seu código


Captura de tela

help wanted

Comentários muito úteis

Olá, @FatKoala. Você pode ler tudo sobre aritmética de ponto flutuante (e boas maneiras de lidar com isso) aqui e em outros lugares online.

E um fato engraçado: JavaScript não faz distinção de tipo entre flutuantes e inteiros. 1 e 1.00000 são o mesmo número em JS (embora isso não seja estritamente a causa dos erros de precisão de ponto flutuante que você experimentou).

Pode valer a pena incluir um recurso sobre aritmética de ponto flutuante (embora não necessariamente aquele ao qual vinculei acima) nos Links úteis deste desafio, pois é provavelmente o primeiro que requer que os usuários entendam os problemas de precisão que ele levanta.

cc @ FreeCodeCamp / issue-moderators para comentários sobre como adicionar esse link (e qual link adicionar)

Todos 5 comentários

Olá, @FatKoala. Você pode ler tudo sobre aritmética de ponto flutuante (e boas maneiras de lidar com isso) aqui e em outros lugares online.

E um fato engraçado: JavaScript não faz distinção de tipo entre flutuantes e inteiros. 1 e 1.00000 são o mesmo número em JS (embora isso não seja estritamente a causa dos erros de precisão de ponto flutuante que você experimentou).

Pode valer a pena incluir um recurso sobre aritmética de ponto flutuante (embora não necessariamente aquele ao qual vinculei acima) nos Links úteis deste desafio, pois é provavelmente o primeiro que requer que os usuários entendam os problemas de precisão que ele levanta.

cc @ FreeCodeCamp / issue-moderators para comentários sobre como adicionar esse link (e qual link adicionar)

Sim, este é um tópico muito interessante e deve ser abordado IMHO.

Em JavaScript, existe apenas um tipo de dados numérico que é number e geralmente é um ponto flutuante de 64 bits (considerando como os navegadores (motores JS para ser mais preciso) os estão implementando).

Vamos marcar isso como busca de ajuda para alguém na comunidade para conectar um bom recurso. Vou tentar olhar para cima também, mas sim, é melhor se vier de alguém que talvez seja um especialista em idiomas.

Obrigado pelo link, foi útil ... fiquei muito frustrado com o problema enquanto eu estava codificando ... agora faz sentido ... Concordo que deve estar vinculado em algum lugar ou explicado anteriormente que essas coisas acontecem ...

Eu vasculhei um pouco e o link do

@dhcodes vá em frente

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

trashtalka3000 picture trashtalka3000  ·  3Comentários

ar5had picture ar5had  ·  3Comentários

jurijuri picture jurijuri  ·  3Comentários

danielonodje picture danielonodje  ·  3Comentários

vaibsharma picture vaibsharma  ·  3Comentários