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.