Aller au contenu principal
Version: 20 R7 BETA

SET REAL COMPARISON LEVEL

SET REAL COMPARISON LEVEL ( epsilon )

ParamètreTypeDescription
epsilonRealValeur epsilon pour les comparaisons d'égalité des réels

Cette commande n'est pas thread-safe, elle ne peut pas être utilisée dans du code préemptif.

Description

La commande SET REAL COMPARISON LEVEL définit la valeur epsilon utilisée par 4D lors d'une comparaison d'égalité des valeurs et expressions de type Réel.

Comme un ordinateur effectue des calculs approximatifs sur les réels, les tests sur l'égalité de valeurs réelles doivent tenir compte de cette approximation. Pour cela, 4D, lorsqu'il compare des valeurs réelles, teste en fait si la différence entre les deux valeurs est supérieure ou non à une certaine valeur. Cette valeur s'appelle l'epsilon et fonctionne de la manière suivante :
Soient deux valeurs réelles a et b. Si Abs(a-b) est supérieur à l'epsilon, les valeurs sont considérées comme différentes ; sinon, elles sont déclarées égales.
Par défaut, 4D fixe la valeur epsilon à 10 à la puissance moins 6 (10^-6). Exemples :

  • 0,00001=0,00002 retourne Faux car la différence 0,00001 est supérieure à 10^-6.
  • 0,000001=0,000002 retourne Vrai car la différence 0,000001 n'est pas supérieure à 10^-6.
  • 0,000001=0,000003 retourne Faux car la différence 0,000002 est supérieure à 10^-6.

A l'aide de SET REAL COMPARISON LEVEL, vous pouvez augmenter ou réduire la valeur epsilon, en fonction de vos besoins.

Note : La commande n'aura pas d'effet si epsilon > 10^-3 ou si epsilon < 0.

Modifier l'epsilon affecte seulement la comparaison d'égalité des réels. Cela n'a pas d'effet sur les calculs et l'affichage des valeurs réelles.

ATTENTION : Cette commande doit être utilisée dans des cas spécifiques, comme par exemple un tri sur un champ dont les valeurs sont inférieures à 10^-6. En général, vous n'avez pas besoin de modifier la valeur par défaut d'epsilon.

Note : La commande SET REAL COMPARISON LEVEL n'a pas d'effet sur les recherches et les tris effectués avec les champs de type réel. Elle s'applique uniquement au langage de 4D.