Q:  How do I avoid banker's rounding?

A:  Banker's rounding stipulates that any number that has a fractional amount that is exactly 0.5 gets rounded to the nearest even number.  When you want to round up, here is how it is done:
 

function RoundUp(TheVal: double): longint;
begin
  result := trunc(TheVal);
  if frac(TheVal) >= 0.5 then inc(result);
end;