Aujourd'hui, j'étais à la recherche par le biais de certains de code C++ (écrit par quelqu'un d'autre) et trouvé cet article:
double someValue = ...
if (someValue < std::numeric_limits<double>::epsilon() &&
someValue > -std::numeric_limits<double>::epsilon()) {
someValue = 0.0;
}
Je suis à essayer de comprendre si ce même sens.
La documentation pour l' epsilon()
dit:
La fonction renvoie la différence entre la 1 et la plus petite valeur supérieure à 1, qui est représentable [double].
Cela s'applique à 0, c'est à dire epsilon()
est la plus petite valeur supérieure à 0? Ou il y a un nombre entre 0
et 0 + epsilon
qui peut être représenté par un double
?
Si pas, alors n'est-ce pas la comparaison équivalent à someValue == 0.0
?