AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Berechnung Einzelposten (Unit-Price, Net-Price)

Ein Thema von Harry Stahl · begonnen am 28. Mär 2025 · letzter Beitrag vom 28. Mär 2025
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.556 Beiträge
 
Delphi 12 Athens
 
#1

Berechnung Einzelposten (Unit-Price, Net-Price)

  Alt 28. Mär 2025, 16:59
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:
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;
Also einmal 8.39 für Net-Price, das andere mal 8.40.

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.
Angehängte Grafiken
Dateityp: png Bild_1_28_März_2025_1755.png (27,1 KB, 10x aufgerufen)

Geändert von Harry Stahl (28. Mär 2025 um 17:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sinspin
Sinspin

Registriert seit: 15. Sep 2008
Ort: Dubai
697 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Berechnung Einzelposten (Unit-Price, Net-Price)

  Alt 28. Mär 2025, 18:19
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.
Stefan
Nur die Besten sterben jung
A constant is a constant until it change.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.556 Beiträge
 
Delphi 12 Athens
 
#3

AW: Berechnung Einzelposten (Unit-Price, Net-Price)

  Alt 28. Mär 2025, 22:18
Auch

ShowMessage('Currency: ' + CurrToStr (RoundCurrency(NettoC, 2))); // Ausgabe: 8.40

wirft 8.40 aus.
  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 13:17 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