Ir al contenido


Foto

Caso raro con Firebird en redondeos


  • Por favor identifícate para responder
4 respuestas en este tema

#1 agag4

agag4

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes
  • LocationMéxico

Escrito 12 noviembre 2012 - 12:59

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.
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

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:



delphi
  1. 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  (y)

Saludox ! :)
  • 0

#3 agag4

agag4

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes
  • LocationMéxico

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.
  • 0

#4 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

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

  • 0

#5 agag4

agag4

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 mensajes
  • LocationMéxico

Escrito 12 noviembre 2012 - 02:45

resuelto.... lo cambie a numeric (16,4) ya con eso se arreglo solito :)

gracias....  :cool:
  • 0




IP.Board spam blocked by CleanTalk.