Uso firebird 1.6 sin ningun problema, hasta que me paso algo raro, en los campos donde uso numeros con decimales manejo el tipo de dato FLOAT, al capturar manualmente la cantidad 149557.71 en un registro nuevo de un campo de ese tipo, al pasarme a otro registro nuevo me doy cuenta que FB hace esto 149557.70 , le cambia el .71 a .70
Revisando en todos los triggers de inserción no veo nada donde use algun tipo de redondeos.
Si me regreso al registro capturado y edito lo que capture me doy cuenta que FB pone 149557.7031
Como puedo impedir que FB haga eso ??
Gracias.
Caso raro con Firebird en redondeos
Comenzado por
agag4
, nov 12 2012 12:59
4 respuestas en este tema
#1
Escrito 12 noviembre 2012 - 12:59
#2
Escrito 12 noviembre 2012 - 01:13
Para mi ha sido un graaaaaaave problema este de que Firebird "modifica" el valor que recibe y lo pone tal y como comentas (con muchos decimales)...
Lo único que he logrado hacer para que funcione es modificar el modo en que alimento el campo desde Delphi:
De esta manera me respeta los 3 decimales que necesito para éste campo en particular... espero te ayude de algo
Saludox !
Lo único que he logrado hacer para que funcione es modificar el modo en que alimento el campo desde Delphi:
delphi
QueryInserta.ParamByName('CAMPO').Value := Trunc(StrToFloat(QueryDatos.FieldByName('CAMPO').AsString)*1000)/1000; // Uso 1000 porque necesito 3 decimales
De esta manera me respeta los 3 decimales que necesito para éste campo en particular... espero te ayude de algo
Saludox !
#3
Escrito 12 noviembre 2012 - 01:22
gracias por el tip, pero no me funciono, el problema es con firebird al momento de almacenar el dato.
#4
Escrito 12 noviembre 2012 - 01:53
Usa un campo definido como NUMERIC(10,2) y dialecto 3 o crea un Domain llamado Currency o moneda basado en la definición anterior.
Más información: http://www.clubdelph...ead.php?t=34764
Saludos
Más información: http://www.clubdelph...ead.php?t=34764
Saludos
#5
Escrito 12 noviembre 2012 - 02:45
resuelto.... lo cambie a numeric (16,4) ya con eso se arreglo solito
gracias....
gracias....