AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Die Delphi-IDE Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?
Thema durchsuchen
Ansicht
Themen-Optionen

Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?

Ein Thema von Achim Kalwa · begonnen am 12. Sep 2023 · letzter Beitrag vom 12. Sep 2023
Antwort Antwort
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
103 Beiträge
 
Delphi 11 Alexandria
 
#1

Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?

  Alt 12. Sep 2023, 14:25
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:
var
  Value1 : Currency;
  Value2 : Currency;
  LFactor: Double;
begin
  Value1  := 15;
  Value2  := 12;
  LFactor := Value1 / Value2;
  ShowMessage(FloatToStr(LFactor));
end;
Compiliert für Windows 32 Bit kommt das erwartete Ergebnis heraus: 1,25.
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?
Achim
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.008 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?

  Alt 12. Sep 2023, 15:47
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?
Japp, ist schon seit XE2 so.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Achim Kalwa

Registriert seit: 2. Apr 2005
Ort: Lienen
103 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Compiler-Fehler bei Currency-Division und EXCESSPRECISION ?

  Alt 12. Sep 2023, 16:33
Japp, ist schon seit XE2 so.
Vielen Dank für die Bestätigung. Dann werde ich mal Embarcadero informieren...
Achim
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz