Tema: Redondeo
Ver Mensaje Individual
  #26  
Antiguo 22-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por novato_erick Ver Mensaje
...
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)); // 5.27


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita