Hace tiempo y con motivo del Euro cree para mi uso esta:
Código Delphi
[-]
function RoundEuros(Const X: Double): Double;
var
r:Int64; X2:Int64; x1:double; begin
x2:=trunc((abs(x)*1000)+0.5);
r:=(x2 mod 10);x2:=trunc(x2/10);
if r >= 5 then x2:=x2+1;
x1:=x2/100;
if x < 0 then
result:=0 - x1
else
result:=x1;
end;
Un Saludo.