[firebase-br] Integer OverFlow no cálculo baseado na tabela price

Nazareno Neto nazareno.nobrega em gmail.com
Ter Fev 2 11:44:02 -03 2010


aqui eu uso double precision, nun perdi quase nada

Em 29 de janeiro de 2010 11:03, Altair Aquino <altairaquino em gmail.com>escreveu:

> Amigo já tentou com FLOAT?
>
>
> Altair O. Aquino
> _______________________________
> Software Engineer
> J2EE/Struts/GWT/Hibernate
> E-mail/Gtalk: altairaquino em gmail.com
> MSN: altairaquino em hotmail.com
> Phone: +55 85 9608-9771
>
>
> 2010/1/29 Junior Miranda <jrmiran em gmail.com>
>
> > Caros mestres...
> > ...Estou com o seguinte problema quando tento fazer um cálculo baseado na
> > tabela PRICE (integer OverFlow). Sei que este erro é provocado, quando
> > ultrapasso a faixa limite de um tipo de dado. Já tentei fazer cast de
> tudo
> > quanto foi geito. Mas em determinados valores, olha ele lá de volta.
> > Qualquer ajuda será bem vinda.
> >
> > Utilizo:
> >  O Firebird 2.0 com Dialect 3;
> >  Os Campos MyTaxa, MyBase,  MyResult e MyBase são do Tipo Numeric(18,8).
> > Usei esta Precisão e Escala para diminuir ao máximo a possibilidade de
> > perda.
> >
> > Pelo que já estudei, sob estas condições, o firebird armazenaria o valor
> em
> > um BigInt. Então o meu cálculo estaria ultrapassando o valor de um BigInt
> ?
> >
> > IF ((MYTAXA > 0) AND (MYPARCELAS > 0)) THEN
> >        BEGIN
> >          MYTAXA = CAST((:MYTAXA / 100) AS NUMERIC(18,8));
> >          MYBASE = 1 + CAST(MYTAXA AS NUMERIC(18,8));
> >          MYRESULT = MYBASE;
> >          MYINDEX = 1;
> >          WHILE (MYPARCELAS > MYINDEX) DO
> >            BEGIN
> >              MYRESULT = CAST(MYRESULT AS NUMERIC(18,8)) * CAST(MYBASE AS
> > NUMERIC(18,8)); -- Erro aqui
> >              MYINDEX = MYINDEX + 1;
> >            END
> >            MYRESULT = CAST((:MYTAXA * MYRESULT) AS NUMERIC(18,8)) /
> > CAST((MYRESULT - 1) AS NUMERIC(18,8));
> >            MYRESULT = CAST(:MYCAPITAL AS NUMERIC(18,4)) * :MYRESULT;
> >        END
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Nazareno Neto
Programador Delphi e Firebird

http://www.delphisistemas.com.br
nazarenoneto em hotmail.com
nazareno.nobrega em gmail.com



Mais detalhes sobre a lista de discussão lista