Hola, la explicacion anterior fue bastante pobre...
Hice esta funcion que por los resultados que me dio parece funcionar:
Código Delphi
[-]
function TForm1.RedondearPesos(var Numero: Real): Real;
function Redondear(Valor: Real; Redondeo: Integer):Real;
begin
Redondear := Round(Valor * Power(10, Redondeo)) / Power(10,Redondeo);
end;
var
num: string;
i: integer;
begin
numero:= Redondear(numero, 2);
if Frac(numero) > 0.95 then
numero:= Redondear(numero,0);
num:= FloatToStr(numero);
for i:= Length(num) downto (Pos(',', num) + 2) do
if (num[i] = '4') or (num[i] = '6') then
num[i]:= '5'
else if (num[i] = '1') or (num[i]= '2') then
num[i]:= '0'
else if (num[i] = '8') or (num[i] = '9') then
begin
numero:= Redondear(numero, 1);
num:= FloatToStr(numero);
end;
Result:= StrToFloat(num);
end;
Le tendrias que hacer algunos retoques. No se que resultado queres cuando el numero es, por ejemplo 2,43 o 2,47.
Espero que te sirva..
Bytes...