Contrôle de la précision à virgule flottante (Delphi pour x64)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Liste des directives de compilation Delphi - Index


Type

Commutateur

Syntaxe

{$EXCESSPRECISION ON}, {$EXCESSPRECISION OFF}

Par défaut

{$EXCESSPRECISION ON}

Portée

Locale

Remarques

La directive $EXCESSPRECISION contrôle la façon dont le compilateur traite les résultats intermédiaires des expressions à virgule flottante en simple précision (32 bits). $EXCESSPRECISION est spécifique à la CPU cible x64 du compilateur Delphi.

Par défaut, toutes les opérations et expressions arithmétiques x64 impliquant seulement des valeurs à virgule flottante en simple précision conservent une précision élevée en stockant les résultats intermédiaires sous la forme de valeurs à virgule flottante en double précision (64 bits). En conséquence, ces opérations sont plus lentes que les opérations à virgule flottante en double précision (le code compilé convertit les valeurs à simple précision en valeurs à double précision sur chaque opération).

Si la vitesse d'exécution est la préoccupation principale, marquez le code en question avec la directive {$EXCESSPRECISION OFF} pour désactiver l'utilisation des valeurs intermédiaires en double précision. Sinon, la directive par défaut ({$EXCESSPRECISION ON}) est recommandée pour améliorer la précision de la valeur résultante.

Pour la CPU cible x86, la directive $EXCESSPRECISION n'a pas d'effet. Le code généré pour cette plate-forme utilise la FPU (unité à virgule flottante), qui stocke les résultats intermédiaires de tout type d'opération sous la forme de valeurs à virgule flottante en précision étendue (80 bits).

Voir aussi