Mega Code Archive

 
Categories / Delphi / Examples
 

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;