![]() |
Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?
Hallo in die Runde,
(Delphi 11.3) vermutlich habe ich heute eine Fehler im 64-Bit-Delphi-Compiler gefunden. Gegeben sind zwei Preise, die in Currency-Variablen gespeichert werden. Die Differenz soll als Faktor dargestellt werden:
Code:
Compiliert für Windows 32 Bit kommt das erwartete Ergebnis heraus: 1,25.
var
Value1 : Currency; Value2 : Currency; LFactor: Double; begin Value1 := 15; Value2 := 12; LFactor := Value1 / Value2; ShowMessage(FloatToStr(LFactor)); end; Compiliert für Windows 64 Bit hängt das Ergebnis davon ab, wie der Compilerschalter "EXCESSPRECISION" gesetzt ist: {$EXCESSPRECISION ON} -> 1,25 (korrekt) {$EXCESSPRECISION OFF} -> 1 (falsch) Schaut man sich den erstellten Assembler-Code an, dann wird im Fehlerfall tatsächlich eine Integer-Division mittels "idiv" durchgeführt; ansonsten "call @CompDiv". Bevor ich im Quality-Portal einen Bugreport aufmachen: Kann dieses Verhalten jemand von Euch mit älteren Delphi-Versionen (als 11.3) reproduzieren? Seit wann gibt es eigentlich den "EXCESSPRECISION"-Schalter? |
AW: Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?
Zitat:
|
AW: Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz