Einzelnen Beitrag anzeigen

handson

Registriert seit: 18. Jan 2007
Ort: Delmenhorst
113 Beiträge
 
Delphi 2007 Professional
 
#1

Falscher Wert - kaufmännisches Runden

  Alt 9. Mai 2011, 15:13
Hallo!

Ich habe ein Problem mit dem käufmannischen Runden.Dazu habe ich mir die hier von shima gepostete Funktion benutzt.
Soweit so gut.

Jetzt ist ein weiteres Problem aufgetreten. Wenn ich folgende Formel berechnen lasse:

Betrag * UstSatz / (100 * UstSatz)

52,83 * 20 / (100 * 20) = 8,805 (kaufm. gerundet = 8,81)

Lasse ich es mit der besagten Funktion Runden (RoundX) kommt da 8,80 heraus.
Habe die Funktion mal zerlegt und stelle fest, dass er bei der int. Funktion Frac bei 880,5 (Wert * 100 wg. 2 Stellen nach dem Komma) statt 0,5 0,4999999999997... ausgibt. Das mal 2 ergibt keine 1. Und somit rundet er bei 5 nicht auf.

Das witzige ist, bei anderen Teilen meines Programms macht er es richtig. Wie ist denn sowas zu erklären?

Danke, für die Tipps!

Stephan
Stephan Faust
  Mit Zitat antworten Zitat