Ver Mensaje Individual
  #1  
Antiguo 26-02-2007
Meinard Meinard is offline
Registrado
 
Registrado: feb 2007
Posts: 3
Reputación: 0
Meinard Va por buen camino
Redondeos extraños en Delphi con Currency y Firebird 2.0

Hola, mi problema es el siguiente, estoy desarrollando un punto de venta y manejo variables currency para los datos de tipo moneda en Delphi y Numeric(10,2) en Firebird, el detalle es el siguiente suponiendo que tengo un producto que cuesta $5.50 y le tengo que aumentar el 15% por concepto de algún impuesto, el resultado de sacarle el 15% sería $0.825, lo cual al yo mostrarlo en delphi en una etiqueta aplicando Código Delphi [-]FormatCurr('$#,##0.00', Valor)

o Código Delphi [-]CurrToStrF(Valor, ffCurrency, 2)

me da como resultado $0.82, pero al agregar esto a firebird con los componente IB que ya vienen en delphi asignando en la consulta "Insert" un parametro para los campos de moneda y asignandole al parametro el valor como AsCurrency, me guarda 0.83, he leido aqui en el foro que en teoria el utilizar currency y numeric en firebird me evitaria problemas de redondeo pero no es así, ya he intentado varias funciones para dar formato en delphi a los valores currency pero siguen redondeando a 0.82, empeze a utilizar RoundTo y si hubo una diferencia al sacar el total sumando el precio 5.5 + el impuesto seria 6.325 y aqui si me redondeo a 6.33 pero el puro impuesto me lo sigue marcando como 0.82. No entiendo bien la manera en que redondea delphi los currency pero me parece muy extraño que 0.825 lo deje como 0.82 y 6.325 como 6.33, me interesa que el 0.825 lo redondie correctamente 0.83 como lo hace al agregarlo a Firebird. En el peor de los casos aceptare que se redonde 0.82 pero siempre y cuando sea constante y todos los números los redondie igual como el 6.325 a 6.32 y en firebird se guarden igual a como los muestro en delphi. De antemano gracias por su atención y ayuda.
Responder Con Cita