Jump to content


Photo

Caso raro con Firebird en redondeos


  • Please log in to reply
4 replies to this topic

#1 agag4

agag4

    Advanced Member

  • Miembros
  • PipPipPip
  • 298 posts
  • LocationMéxico

Posted 12 November 2012 - 12:59 PM

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
  • 3486 posts
  • LocationMexico City

Posted 12 November 2012 - 01:13 PM

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 posts
  • LocationMéxico

Posted 12 November 2012 - 01:22 PM

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 posts
  • LocationOaxaca, México

Posted 12 November 2012 - 01:53 PM

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 posts
  • LocationMéxico

Posted 12 November 2012 - 02:45 PM

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

gracias....  :cool:
  • 0




IP.Board spam blocked by CleanTalk.