Rundungsfehler
Verfasst: Mi, 31. Mär 2021 19:50
Das macht mich fertig. Mein Ausgangszenario (Set decimals ist standardmäßig auf 2 gesetzt):
Das ergab bei mir einen falschen Steuerwert für 14,29 € netto mit 19% Steuer (::aSteuer = {14.29, 19.00}), nämlich 2.71 (müsste 2.72 sein).
Dann mal geändert auf:
Warum macht ein Round(v, 2) aus 2.7151 das Ergebnis 2.71 und nicht 2.72 ???????????
Code: Alles auswählen
for i := 1 to len(::aSteuer)
::SumSteuer += ::aSteuer[i, 1] * ::aSteuer[i, 2] / 100
next
::SumSteuer := Round(::SumSteuer, 2)
Dann mal geändert auf:
Code: Alles auswählen
for i := 1 to len(::aSteuer)
SET DECIMALS TO 4
v := ::aSteuer[i, 1] * ::aSteuer[i, 2] / 100 --------> 2,7151
v := Round(v, 2)----------------------------------------> 2,71
:: SumSteuer += v
SET DECIMALS TO 2
next