Problem avec le type double en c++

Fermé
ihssanos Messages postés 29 Date d'inscription dimanche 26 août 2007 Statut Membre Dernière intervention 6 décembre 2013 - 17 mars 2013 à 18:24
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 17 mars 2013 à 19:10
Bonjour,
dans un programa de c++ je fais

double a,b;
...
double r = (a+b)/2;

sachant que a = 1.98846 et b = -1.98846 normalmnt le resultat doit etre 0 mais qund je l'execute il me donne : 1.11022e-16 je ne sais pas comment regler sce problem
merci pour votre aide


A voir également:

1 réponse

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
17 mars 2013 à 19:10
Tu ne peux pas: les nombres a virgule sont gérés avec une certaine précision dépendant du processeur, donc il se peut que de petites marges se créent. A moins d'implémenter les nombres a virgule soi même, c'est impossible.
1.11022e-16 c'est vraiment pas grand chose, c'est très proche de zéro.
0