Ver Mensaje Individual
  #3  
Antiguo 10-10-2005
Avatar de Sotrono
Sotrono Sotrono is offline
Miembro
 
Registrado: abr 2004
Ubicación: Buenos Aires - Argentina
Posts: 396
Reputación: 21
Sotrono Va por buen camino
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;
//Esta funcion (Redondear) fue sacada de Trucomania
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...
Responder Con Cita