[firebase-br] Fwd: Problema com Double

Daniel Braz daniel.braz em suzuki.ind.br
Seg Maio 30 09:41:56 -03 2005


Eu sugiro que para os campos CNPJ  e INSCRIÇÃO ESTADUAL, vc use o tipo 
string. Geralmente encontramos estes codigos iniciando com ' 0', o que 
numa apresentação seria visualizado somente os numeros, além claro do 
estouro de limite permitido pelo tipo numeric, double ou integer.
.

marlon david de souza escreveu:

>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
>>    
>>
>
>______________________________________________
>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
>  
>

-- 

Daniel Braz de Oliveira (TI)
Supervisor de TI

Suzuki Ind. e Com. Maquinas Ltda
41 - 2106-6363 - Ramal 6381
 
www.suzuki.ind.br <http://www.suzuki.ind.br>
 





Mais detalhes sobre a lista de discussão lista