Cita:
Empezado por novato_erick
...
en fin a la hora de utilizar la función me sale 5.26 en vez de5.27
Código Delphi [-] 5.26 := simpleroundto(5.265, -2)
en fin necesito esto porque en mi país están utilizando las dichosas impresoras fiscales el cual ese valor de 5.265 ella misma me hace el calculo y lo guarda como 5.27 mientras que en la aplicación simpre me está mostrando el 5.26 aun utilizando la función Simpleroundto.
|
Hola novato_erick.
A ver... proba de este modo:
Código Delphi
[-]
function Redondear(const Numero: Double; const Cifras: Integer): Extended;
var
pd: Extended;
begin
pd := Exp(Ln(10)*Cifras);
if Trunc(Frac(Numero)*pd) mod 10 < 5 then
Result:= Round(Numero*pd)/pd
else
Result:= Round(Numero*pd+1/pd)/pd;
end;
Ejemplo:
Código Delphi
[-]
FloatToStr(Redondear(5.265, 2));
Saludos