Tema: Redondeo
Ver Mensaje Individual
  #2  
Antiguo 31-07-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Reputación: 10
marcoszorrilla Va por buen camino
Prueba con esta función que cree en su momento para el Euro.

Código:
function RoundEuros(Const X: Double): Double;
var
r:Int64;  //resto
X2:Int64; //número
x1:double;  //resultado
begin
x2:=trunc((abs(x)*1000)+0.5); //Tomo los 3 primeros decimales.

r:=(x2 mod 10);//Compruebo si el 3 decimal es >=5
x2:=trunc(x2/10);//desprecio el tercer decimal

        if r >= 5  then  //Si el 3 decimal era >= 5 sumo 1 al número
                x2:=x2+1;

x1:=x2/100; //Construyo el número con los 2 decimales

        if x < 0 then
                result:=0 - x1
        else
                result:=x1;

end;
Un Saludo.
Responder Con Cita