Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Delphi Currency oder Double (https://www.delphipraxis.net/184342-currency-oder-double.html)

Dejan Vu 19. Mär 2015 17:41

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?

bernau 19. Mär 2015 18:10

AW: Currency oder Double
 
Zitat:

Zitat von Dejan Vu (Beitrag 1294109)
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?

Dafür kann man sich schöne sprechende Funktionen schreiben

Dejan Vu 19. Mär 2015 19:03

AW: Currency oder Double
 
Zitat:

Zitat von bernau (Beitrag 1294114)
Dafür kann man sich schöne sprechende Funktionen schreiben

Delphi-Quellcode:
If IsLessThan(X-Y,Z) then
ist ja auch viel besser lesbar als
Delphi-Quellcode:
If X-Y<Z then
.. oder war das doch anders herum? :gruebel:

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.

BUG 19. Mär 2015 20:30

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:

Dejan Vu 20. Mär 2015 05:13

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.
Seite 3 von 3     123   

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