Delphi-Quellcode:
Hinweis: Die Funktionsweise von Round kann mit der Prozedur Set8087CW oder der Funktion SetRoundMode gesteuert werden.
Unit Math
type TFPURoundingMode = (rmNearest, rmDown, rmUp, rmTruncate);
function SetRoundMode(
const RoundMode: TFPURoundingMode): TFPURoundingMode;
Beschreibung
Mit SetRoundMode können Sie festlegen, welchen Rundungsmodus die FPU verwendet. Der Rundungsmodus kann folgende Werte annehmen:
Wert Bedeutung
rmNearest Rundet zum nächsten Wert.
rmDown Rundet gegen minus unendlich.
rmUp Rundet gegen plus unendlich.
rmTruncate Schneidet den Wert ab. Positive Werte werden auf-, negative Werte abgerundet.
Man wird wohl dann auf rmnearest setzen müssen und dann müsste Round auch "richtig" runden
Edit: Habs mal getestet, kommt das selbe raus.
Aber wenn ich round(1.5) mache kommt 2 raus aber bei round(58.5) = 58
das Verhalten versteh ich dann nicht. Scheint aber nur bei 1.5 so zu sein, bei 0.5 und 2.5 macht er das selbe wie bei 58.5