Ich möchte die Schwimmer mit einer Vorspannung abrunden, entweder immer nach unten oder immer nach oben. Es gibt einen bestimmten Punkt im Code, an dem ich dies benötige, der Rest des Programms sollte wie üblich auf den nächsten Wert runden.
Ich möchte zum Beispiel auf das nächste Vielfache von 1/10 runden. Die nächstgelegene Fließkommazahl zu 7/10 ist ungefähr 0,69999998807, aber die nächstgelegene Zahl zu 8/10 ist ungefähr 0,80000001192. Wenn ich Zahlen abrunden möchte, erhalte ich diese beiden Ergebnisse. Mir wäre es lieber, wenn sie auf die gleiche Weise gerundet würden. 7/10 sollte auf 0,70000004768 gerundet werden und 8/10 sollte auf 0,80000001192 gerundet werden.
In diesem Beispiel runde ich immer auf, aber ich habe einige Stellen, an denen ich immer abrunden möchte. Glücklicherweise habe ich es an jeder dieser Stellen nur mit positiven Werten zu tun.
Die Zeile, die ich zum Runden verwende, lautet floor(val * 100 + 0.5) / 100
. Ich programmiere in C++.