![]() |
Berechnung Einzelposten (Unit-Price, Net-Price)
Liste der Anhänge anzeigen (Anzahl: 1)
Was ist eigentlich bei der Berechnung des Einzelposten für Unit-Price und Net-Price (E-Rechnung) der richtige Variablentyp?
Sollte man hier Float oder Currency verwenden? Je nach dem, gibt es unterschiedliche Ergebnisse für die Berechnung bei Eingabe eines Bruttopreises und der Berechnung des Nettos daraus:
Delphi-Quellcode:
Also einmal 8.39 für Net-Price, das andere mal 8.40.
procedure Tfrm_Main.Button2Click(Sender: TObject);
var BruttoD: Double; NettoD: Double; BruttoC: Currency; NettoC: Currency; begin // Mit Double BruttoD := 9.99; NettoD := BruttoD / 1.19; ShowMessage('Double: ' + FormatFloat('0.00', NettoD)); // Ausgabe: 8.39 // Mit Currency BruttoC := 9.99; NettoC := BruttoC / (1 + (19 / 100)); ShowMessage('Currency: ' + FormatFloat('0.00', NettoC)); // Ausgabe: 8.40 end; Wenn man Currency verwendet und somit 8.40 ergibt sich hier z.B. bei der Seite PDF-Tools24 das Ergebnis wie anliegend angezeigt. Also aus dem 9,99 Brutto wird 10,00 Brutto. Anmerkung: Wenn ich in der Eingabemaske zunächst die 8,39 für den Unit-Price eingebe, dann erhalte ich wie bei mir 9,98 Brutto und das gesammte Rechenergebnis (also mit der Netto-Methode) ist identisch, wie bei mir. |
AW: Berechnung Einzelposten (Unit-Price, Net-Price)
Ich arbeite grundsätzlich mit Currency wenn es um Geldbeträge geht. Das was da intern bei einem Double/Float passiert ist schön wenn man Musik abspielen will, hat aber nichts Finanzen zu tuen.
Preise werden immer so lange wie möglich Netto gehalten um Unrechnungsfehler zu vermeiden (die treten natürlich bei allen Datentypen auf, bei Gleitkomma trastischer) Das FormatFloat scheint bei Float einfach abzuschneiden und nicht zu Runden. Besser gleich Currency nehmen oder den Floatwert vorher Runden. |
AW: Berechnung Einzelposten (Unit-Price, Net-Price)
Auch
Delphi-Quellcode:
ShowMessage('Currency: ' + CurrToStr (RoundCurrency(NettoC, 2))); // Ausgabe: 8.40
wirft 8.40 aus. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:59 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