Explaination of rounding

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;