2010-07-14 4 views
0

Je viens de lire this nice answer given on how to compare floating-point values for equality. Ce qui suit (légèrement modifié par moi) est suggérée au lieu de comparaison simple pour 0:Test de l'égalité des valeurs à virgule flottante: existe-t-il un nom standard pour la constante "precision"?

const double epsilon = 1e-5; 

double d = ...; 
if (Math.Abs(d) < epsilon) 
{ 
    // d is considered equal to 0. 
} 

Ma question porte sur le nom de la variable epsilon1). Est-ce que "epsilon" est le nom généralement accepté pour spécifier la précision des nombres à virgule flottante? (& hellip; quelle est la plus petite différence de distinction entre deux valeurs considérées comme des nombres différents)?

Comme le code ci-dessus est toujours facile à comprendre en raison de sa simplicité, cela peut sembler hors de propos. Mais j'ai souvent trébuché sur ce problème de nommage et j'aimerais savoir, une fois pour toutes, comment nommer cette constante de précision, favorablement d'une manière qui permettra à ceux qui lisent mon code de savoir ce qui est prévu.

1) Je suis conscient que epsilon (ε pour faire court, ou e) est souvent utilisé pour désigner des écarts ou des erreurs, par exemple dans les statistiques (analyse de régression).

+0

Juste découvert l'article de Wikipedia [machine epsilon] (http://en.wikipedia.org/wiki/Machine_epsilon) et posté une [question de suivi] (http://stackoverflow.com/questions/3281237)/est-la-utilisation-de-machine-epsilon-approprié-pour-flottant-point-égalité-tests). – stakx

Répondre

0

epsilon est un bon nom si vous êtes un mathématicien - insignificantlySmallValue est mieux si vous êtes une personne normale à long terme. :)

+1

Cela dit, j'utiliserais probablement epsilon moi-même! –

+1

Le terme "epsilon", dérivé de [machine epsilon] (http://en.wikipedia.org/wiki/Machine_epsilon) est omniprésent dans le code numérique et est parfaitement compris. 'insignificantlySmallValue' est juste ennuyeux. :) – user4815162342

Questions connexes