Tema: Redondeo
Ver Mensaje Individual
  #20  
Antiguo 21-04-2014
novato_erick novato_erick is offline
Miembro
 
Registrado: ago 2010
Ubicación: Panamá
Posts: 396
Reputación: 14
novato_erick Va por buen camino
Hola chicos definitivamente cambié en la base de datos en firebird el tipo de campo a decimal 12,2 corrigió muchos de mis problemas pero como dije muchos de mis problemas quedando algunos al azar en la aplicación con el asunto de los redondeos.

nuestro amigo ecfisa me dice:

Cita:
Tanto Delphi como Firebird, redondean (y lo hacen muy bién) con SimpleRoundTo() y ROUND()
lo hice y como respaldo busqué la ayuda de Delphi y salió esto:

Cita:
function SimpleRoundTo(const AValue: Single; const ADigit: TRoundToRange = -2): Single;
function SimpleRoundTo(const AValue: Double; const ADigit: TRoundToRange = -2): Double;
function SimpleRoundTo(const AValue: Extended; const ADigit: TRoundToRange = -2): Extended;

SimpleRoundTo(1234567, 3)
1234000

SimpleRoundTo(1.234, -2)
1.23

SimpleRoundTo(1.235, -2) //este redondeo es que me interesa
1.24

SimpleRoundTo(-1.235, -2)
-1.23
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.

Saludos
Responder Con Cita