Freecodecamp: Problème de problème de changement exact

Créé le 4 août 2016  ·  5Commentaires  ·  Source: freeCodeCamp/freeCodeCamp

Nom du défi

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

Description du problème

J'ai eu un problème avec ce problème en raison de calculs inexacts en travaillant avec la valeur "0,01". Parfois, la valeur renvoyée du calcul avait une valeur incorrecte après 7 ou 8 décimales (par exemple 1,01 - 0,01 = 0,999999996).
Quelqu'un d'autre a-t-il eu un problème similaire?
J'ai réussi à le résoudre mais il m'a quand même fallu beaucoup de temps pour le faire à cause de ce problème qui ne devrait pas arriver ... Tout le monde sait pourquoi il en est ainsi. Mon avis est que cela est dû à la manière dont js enregistre les valeurs entières et flottantes ...

Informations sur le navigateur

  • Nom du navigateur, version: Google Chrome, 52.0.2743.82 (64 bits)
  • Système d'exploitation: Linux Ubuntu 16.04
  • Mobile, ordinateur de bureau ou tablette: ordinateur portable

Votre code


Capture d'écran

help wanted

Commentaire le plus utile

Salut, @FatKoala. Vous pouvez tout lire sur l'arithmétique à virgule flottante (et les bonnes façons de la gérer) ici et sur d'autres sites en ligne.

Et un fait amusant: JavaScript ne fait pas de distinction de type entre les flottants et les entiers. 1 et 1.00000 sont le même nombre dans JS (bien que ce ne soit pas strictement la cause des erreurs de précision en virgule flottante que vous avez rencontrées).

Cela pourrait valoir la peine d'inclure une ressource sur l'arithmétique en virgule flottante (mais pas nécessairement celle que j'ai liée ci-dessus) dans les liens utiles de ce défi car c'est probablement le premier qui oblige les utilisateurs à comprendre les problèmes de précision qu'il soulève.

cc @ FreeCodeCamp / issue-moderators pour obtenir des commentaires sur l'ajout d'un tel lien (et quel lien ajouter)

Tous les 5 commentaires

Salut, @FatKoala. Vous pouvez tout lire sur l'arithmétique à virgule flottante (et les bonnes façons de la gérer) ici et sur d'autres sites en ligne.

Et un fait amusant: JavaScript ne fait pas de distinction de type entre les flottants et les entiers. 1 et 1.00000 sont le même nombre dans JS (bien que ce ne soit pas strictement la cause des erreurs de précision en virgule flottante que vous avez rencontrées).

Cela pourrait valoir la peine d'inclure une ressource sur l'arithmétique en virgule flottante (mais pas nécessairement celle que j'ai liée ci-dessus) dans les liens utiles de ce défi car c'est probablement le premier qui oblige les utilisateurs à comprendre les problèmes de précision qu'il soulève.

cc @ FreeCodeCamp / issue-moderators pour obtenir des commentaires sur l'ajout d'un tel lien (et quel lien ajouter)

Ouais, c'est un sujet très intéressant et devrait être abordé à mon humble avis.

En JavaScript, il n'y a qu'un type de données numérique qui est number et c'est généralement une virgule flottante de 64 bits (compte tenu de la manière dont les navigateurs (JS Engines pour être précis) les implémentent).

Marquons cela comme l'aide recherchée pour que quelqu'un dans la communauté puisse relier une bonne ressource. Je vais essayer de lever les yeux aussi, mais oui, c'est mieux si cela vient de quelqu'un qui est peut-être un expert en langues.

Merci pour le lien, c'était utile ... j'ai été vraiment frustré par le problème pendant que je codais ... maintenant cela a du sens ... je suis d'accord qu'il devrait être lié quelque part ou expliqué plus tôt que ces choses se produisent ...

J'ai fouillé un peu et le lien de

@dhcodes, veuillez continuer

Cette page vous a été utile?
0 / 5 - 0 notes