Voici un problème qui m'a complètement dérouté eu depuis quelques heures ...Mathématiques à virgule flottante incorrecte?
Je dur une équation codée dans mon programme:
double s2;
s2 = -(0*13)/84+6/42-0/84+24/12+(6*13)/42;
Chaque fois que je lance le programme, l'ordinateur crache 3 comme la réponse, mais en faisant le calcul à la main, je reçois 4. Encore plus loin, après avoir entré l'équation dans Matlab, j'obtiens aussi la réponse 4. Que se passe-t-il ici?
La seule chose que je peux penser de ce qui ne va pas ici serait d'arrondir l'erreur. Cependant, avec un maximum de 5 erreurs d'arrondi, couplé avec l'utilisation de maths à double précision, mon erreur maximale serait très très faible, donc je doute que ce soit le problème.
Quelqu'un peut-il offrir des solutions?
Merci à l'avance,
-Faken
Hmm, merci pour votre aide. J'aurais dû venir ici plus tôt, eh bien. – Faken
1,25 est représentable en base 2, tout comme 4.0 et 5.0. Cela devrait être exact. – dmckee
Comme c'était un exemple arbitraire dmckee, j'ai décidé d'aller avec la déclaration plus sûre. :) – Amber