dúvida sobre campo do tipo double precision

Firebird

11/02/2005

olá pessoal,

no banco firebird da empresa q trabalho está aparecendo em alguns campos do tipo double precision o seguinte valor =7,105427357601E-15
e eu comecei a pesquisar dentro do banco e vi q isso acontece quando um trigger ou procedure efetua uma subtracao no banco por exemplo:

existe uma trigger q ao deletar compras de uma tabela ela subtrai o valor dessa compra em um registro em outra tabela, só q se tiver por exemplo quatro compras uma com 1 real e outras tres com 0,01 centavo e eu deletar primeiro 1 real e depois os centavos o valor do registro q sofreu a subtracao fica 7,105427357601E-15, mas se eu deletar primeiro os tres 0,01 centavo e depois 1 real o registro fica =0 q é o correto.

alguem pode me explicar oq acontece?

será algum problema com esse tipo de campo double precision?


Tap_pedroso

Tap_pedroso

Curtidas 0

Respostas

Afarias

Afarias

11/02/2005

sim, campos DOUBLE PRECISION não são bons para cálculos q exigem precisão (se vc notar, o valor observado é *MUITO* próximo de ZERO -- 7,1 * 10^-15)

para ter cálculos precisos, use NUMERIC (que internamente usará tipos inteiros para manter o valor, o q tornará os cálculos precisos)


T+


GOSTEI 0
POSTAR