Question:
Since Delphi's Round() function uses "bankers rounding" where the
value is rounded to the nearest even number, how can I round a
floating point number using the more traditional means, where
fractional values less than .5 round down, and fractional values
of .5 and greater round up?
Answer:
The following function demonstrates rounding down numbers with
fractional values of less than .5, and rounding up numbers with
fractional values of .5 and greater.
Example:
function RoundUp(X: Extended): Extended;
begin
Result := Trunc(X) + Trunc (Frac(X) * 2);
end;