Steuerung der Gleitkommagenauigkeit (Delphi für x64)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Liste der Delphi-Compiler-Direktiven - Index


Typ

Option

Syntax

{$EXCESSPRECISION ON}, {$EXCESSPRECISION OFF}

Vorgabe

{$EXCESSPRECISION ON}

Bereich

Lokal

Anmerkungen

Die Direktive $EXCESSPRECISION steuert die Behandlung von Zwischenergebnissen von Gleitkommaausdrücken mit einfacher Genauigkeit (32 Bit) durch den Compiler. $EXCESSPRECISION ist spezifisch für die x64-Ziel-CPU des Delphi-Compilers.

Standardmäßig wird für alle arithmetischen x64-Operationen und -Ausdrücke mit Gleitkommawerten mit einfacher Genauigkeit eine hohe Genauigkeit durch Speichern der Zwischenergebnisse als Gleitkommawerte mit doppelter Genauigkeit (64 Bit) beibehalten. Als Folge davon sind diese Operationen langsamer als Gleitkommaoperationen mit doppelter Genauigkeit (der compilierte Code konvertiert bei jeder Operation Single-Werte in Double-Werte).

Wenn die Ausführungsgeschwindigkeit wesentlich ist, kennzeichnen Sie den fraglichen Code zur Deaktivierung von Zwischenwerten mit doppelter Genauigkeit mit der Direktive {$EXCESSPRECISION OFF}; ansonsten wird die Standarddirektive ({$EXCESSPRECISION ON}) zur Erhöhung der Genauigkeit des Ergebniswertes empfohlen.

Für die x86-Ziel-CPU hat die Direktive $EXCESSPRECISION keine Auswirkung. Der für diese Plattform erzeugte Code verwendet die FPU (Gleitkommaeinheit), die die Zwischenergebnisse jeder Art von Operation als Gleitkommawerte mit der Genauigkeit "extended" (80 Bit) speichert.

Siehe auch