![]() |
AW: Currency oder Double
Erstmal richtig: Auskennen muss man sich.
Bei Double wird aus klaren Anweisungen dann leider idiotischer und unverständlicher Code. Beispiel: Vorgabe: Abheben darf ich einen Betrag X, wenn der auf dem Konto verbleibende Betrag nicht kleiner als der Dispo ist. Oder einfacher: Die Bedingung lautet 'Betrag - X >= Dispo'. Das möchten wir bitte so im Code umsetzen. Aber was muss ich stattdessen machen? 'Abs(Betrag - X - Dispo) >= Epsilon'! WTF? |
AW: Currency oder Double
Zitat:
|
AW: Currency oder Double
Zitat:
Delphi-Quellcode:
ist ja auch viel besser lesbar als
If IsLessThan(X-Y,Z) then
Delphi-Quellcode:
.. oder war das doch anders herum? :gruebel:
If X-Y<Z then
Ach ja, und immer (auf)runden. Und aufpassen. Immer aufpassen. Und hier noch ein Runden und da noch eins. Also ich nehm lieber den einfachen Weg und nimm kein Double. |
AW: Currency oder Double
Man könnte sein Double (oder was auch immer) auch in einen eigenen Typ (record) packen und dessen Operatoren so definieren wie man es braucht.
Genauso lesbar, aber etwas flexibler :wink: |
AW: Currency oder Double
Die Operatorenüberladen hatte ich ü-ber-haupt-nicht auf dem Schirm :thumb: Das wäre der geeignete Workarund.
Wobei -zumindest aus meiner Erfahrung her- immernoch die blöden, teilweise unmotivierten Rundungen kommen. Ich würde Currency für eine Währung nehmen und jede Umrechnung (Steuer, Abschlag, Währung etc.) über eine wohldefinierte Funktion abbilden. Denn diese sind bis auf den Cent definiert und über Unittests abbildbar. Aber egal. Das Thema ist durch. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:20 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 by Thomas Breitkreuz