dúvida sobre campo do tipo double precision

11/02/2005

0

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

Responder

Posts

11/02/2005

Afarias

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+


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar