Problem avec le type double en c++

ihssanos Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   -
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 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
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