Einzelnen Beitrag anzeigen

arnof

Registriert seit: 25. Apr 2013
1.250 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#19

AW: kaufmännisch runden

  Alt 27. Nov 2013, 13:28
Egal welche Datentypen man verwendet oder das benutzte System bietet, wenn man eine Kleinigkeit hinzuaddiert, so bekommt man das Floatproblem in den Griff.
Besser gesagt: man kann damit das Problem an einen anderen Ort verschieben, von dem man dann hofft, dass man dort nie vorbeikommt.
Ja, wenn 0.015 rauskommen sollte, das aber durch 0.01499999 approximiert wird, dann passt die Lösung mit +epsilon. Was aber wenn das Ergebnis der Rechnung 0.01499999 ist? Dann wird das Ergebnis verfälscht, weil auf 0.02 gerundet wird, obwohl 0.01 korrekt wäre.
Egal unter welchen Umständen man Gleitkommazahlen verwendet, es wird immer Probleme geben wenn man genaue Kommastellen braucht. Die einzige Lösung ist, einen für das Problem passenden Datentyp zu verwenden. (Siehe auch Furtbichlers Antwort)

Also ich habe noch keine Rechnung mit 0.01499999 gesehen. Ich mache das schon 25 Jahre und weiß wovon ich spreche. Man kann diesen Tipp annehmen oder auch nicht! Wenn man das nicht so macht, so kann ich Dir versprechend, das in bestimmten Branchen Dir die Software um die Ohren fliegt, wenn der Kunde anfängt nachzurechnen!

Natürlich ist die große Kunst nur an den richtigen Stellen zu runden, den gerundete Werte sind falsche Werte
  Mit Zitat antworten Zitat