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;
|