[firebase-br] Fwd: Problema com Double
marlon david de souza
marlon em sysmo.com.br
Seg Maio 30 06:24:50 -03 2005
Bom dia Eduardo,
Primeiramente obrigado pela atenção.
Eu também somente utilizo o tipo Currency no sistema. No entanto os
componentes de terceiros que eu utilizio (exp: gerado de relatórios) bem como
os componentes nativos usam extensivamento o tipo "double", por isso é que
estou enfrentando este problema.
Eu citei o caso do CNPJ, pois no FB eu defini este campo como
"numeric(18,1)". Então ao recuperar este valor no sistema, como internamente
a função "AsCurrency" utiliza uma váriavel do tipo "double", o valor vem
incorreto.
Sem dúvida é muito estranho o que está ocorrendo e por enquanto não
encontrei nenhuma alternativa.
Sem mais,
----------------------
Marlon David de Souza
Desenvolvimento
Sysmo Informática Ltda
-----------------------------------------------------------------------------------------------------------------------------
> Em Dom 29 Mai 2005 20:34, eduardo escreveu:
> Oi Marlon
>
> Este é o problema dos Floats
>
> Os tipos que vc pode usar para não incorrer neste problema são o
> Integer, Int64 e o Currency.
>
> Extended, Single e Double te darão o mesmo problema.
>
> Quanto ao caso ds impressoras, realmente não sei explicar. O que sei é
> que o comportamento dos floats é relacionado ao processador,e por essa
> razão se comportam diferentes em máquinas diferentes.
>
> Eu, particularmente não ustilizo campos Float e tenho utilizado Currency
> ao invés de Extended e tenho me livrado destes problemas de
> float/arredondamento.
>
> No seu caso, para um valor inteiro grande, aconselho o INT64
>
> []s Eduardo
>
> marlon david de souza wrote:
> > Boa tarde a todos,
> >
> > Alguem já viu algo parecido?
> > Ao atribuir alguns números inteiros grandes (exp: CNPJ) para variáveis
> > do tipo "double", estes estão ficando com casas decimais. Exemplo:
> >
> > var
> > tst: Double;
> > .
> > .
> > tst := 33641358237322; // Ao consultar o valor desta variável, está
> > retornando o valor 33641358237321,9968
> >
> > Ao procurar o problema, constatei que este problema somente acontece em
> > algumas máquinas que possuem instalado impressoras mais recentes. Se eu
> > excluo a impressora ou instalo uma mais antiga (exp:HP 695C), daí
> > funciona.
> >
> > Será que isso tem solução? Obs: a resposta pode ser em "private"!
> >
> >
> > Sem mais, agradeço antecipadamente a atenção
> >
> > ----------------------
> > Marlon David de Souza
> > Desenvolvimento
> > Sysmo Informática Ltda
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> > Para editar sua configuração na lista, use o endereço
> > http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br Para
> > consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br Para
> consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista