Dazu nochmal begriff Klarstellung:
Banker's Rounding = Mathematisches Runden
Unser in der schule gelerntes Runden ist das Kaufmännische Runden.
(
https://de.wikipedia.org/wiki/Rundung)
In Delphi(5-7) (andere Versionen kann ich gerade nicht nachschauen) nutzt die normale Rundungsfunktion leider das Banker's Rounding (Mathematische Runden).
Fakt ist ICH benötige das Kaufmännisches Runden (für Rechnungen (Einzelpreise 5 stellig da unter 1 Cent somit kein Currency möglich)) und das ist in Delphi(5-7) so nicht einfach möglich.
Auch aus dem Grund da die Double nicht genau genug sind.
Beispiel getestet in Delphi 6:
RoundTo(2194.825, -2) = 2194.82 | Benötigt wird aber 2194.83
Ich habe somit eine Funktion gebaut die mir den wegfallenden Dezimalwert in ein Integer umwandelt den ich dann auf 0-4 bzw. 5-9 prüfen kann. Diese Funktion prüfe ich gerade ob diese auch so funktioniert wie sie soll (was ohne Referenz schwer ist).