Précision en C++ : est ce que == suffit?
Bonjour,
J'ai une question qui peut paraitre naïve, mais je me demande s'il existe des cas où il faut remplacer des tests d'égalité sur des nombres par des tests du type
Code:
1 2 3 4 5 6 7 8
|
#define precision 0.000001
bool isEquals(long double a, long double b) {
long double diff = a - b;
if (diff < 0.0) diff = - diff;
return diff < precision;
} |
Je code une application qui manipule beaucoup d'équations linéaires, et j'ai (pour l'instant) toujours pu valider mes tests avec des égalités (==) et pas des tests de distance comme ci dessus.
Je vous demande donc si:
- vous avez eu le problème d'erreurs dans les calculs? Et si oui, comment vous l'avez résolu?
- Si on peut avoir besoin du code (moche) ci dessus?
- Et si == suffit toujours, alors pourquoi?
Merci