Fórum Problemas com campos float #195025

14/11/2003

0

Olá possuo no meu banco de dados(interbase) campos float e quando passo atraves do meu front end feito em delphi o valor para esse campos, ele modifica o valor como o seguinte exemplo:

no edit digitei 8,80 e no banco ficou gravado 8,80000019073486
ou no edit 10,4 e no banco ficou 10,3999996185303

no evento onkeypress dos edits coloco esse código para permitir só numeros e uma virgula ou ponto, isso pode gerar isso??

if not(key in[´0´..´9´,´.´,´,´,#8,13]) then
key := 0;
if key in [´,´,´.´] then
key := DecimalSeparator;
if key = DecimalSeparator then
if pos(key,TEdit(Sender).Text) <> 0 then
key := 0;

If Key = 13 Then
SelectNext(ActiveControl, True, True);


como posso resolver isso, desde ja agradeço.....KANIGGIA


Kaniggia

Kaniggia

Responder

Posts

14/11/2003

Afarias

campos float são sucetíveis a ´imprecisões´.

use NUMERIC e defina seu tamanho o menor necessário para determinado campo -- o IB automaticamente definirá o campo com o melhor tipo para ele.

na aplicação dê preferência a usar campos BCD (TBCDField) e veriáveis Currency (principalmente em cálculos montários) -- entretanto, a limitação aqui é:: 4 casas decimais e 20 dígitos significativos.


T+


Responder

Gostei + 0

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

Aceitar