Fórum Problema com Ponto Flutuante (Interbase DBExpress) #235112
30/05/2004
0
Pessoal...
to com o seguinte problema... eu tenho um campo float... e estou querendo gravar um valor do tipo ´0,1´...
qdo ele grava o ´0,1´ no campo... e salva depois... olho na base estah com lixo... ´0,1000000462...´ como eu posso resolver isso???
jah tentei forçar um roundto... pra arredondar na qtidade de casas decimais que eu quero e nada...
Obrigado,
Kiguti
to com o seguinte problema... eu tenho um campo float... e estou querendo gravar um valor do tipo ´0,1´...
qdo ele grava o ´0,1´ no campo... e salva depois... olho na base estah com lixo... ´0,1000000462...´ como eu posso resolver isso???
jah tentei forçar um roundto... pra arredondar na qtidade de casas decimais que eu quero e nada...
Obrigado,
Kiguti
Kiguti
Curtir tópico
+ 0
Responder
Posts
17/06/2004
Marfred
sobe...
Tenho a mesma duvida....
Tenho a mesma duvida....
Responder
Gostei + 0
17/06/2004
Christian_adriano
Olha kiguti,
em vez de usar o campo do tipo ´Float´ usar como ´Double Presicion´;
e para utiliza-lo faça o seguinte.
with SQLQuery do
begin
Close;
SQL.Clear;
SQL.Add(´INSERTO INTO tabela (campo) ´);
SQL.Add(´values (:valor) ´);
Params[0].asFloat := StrToFLoat(EdtValor.Text);
ExecSQL;
end;
Onde ´:valor´ vai ser o parametro para a inserção do valor no banco de dados. E ´Params[0].asFloat ´, Qual é o paramentro (q é 0, pois soh tem um parametro) e propriedade dele (asFloat).
Usando dessa forma, se vc digitar 12,6554
ele vai gravar exatamente ´12,6554´.
Espero ter ajudado...
em vez de usar o campo do tipo ´Float´ usar como ´Double Presicion´;
e para utiliza-lo faça o seguinte.
with SQLQuery do
begin
Close;
SQL.Clear;
SQL.Add(´INSERTO INTO tabela (campo) ´);
SQL.Add(´values (:valor) ´);
Params[0].asFloat := StrToFLoat(EdtValor.Text);
ExecSQL;
end;
Onde ´:valor´ vai ser o parametro para a inserção do valor no banco de dados. E ´Params[0].asFloat ´, Qual é o paramentro (q é 0, pois soh tem um parametro) e propriedade dele (asFloat).
Usando dessa forma, se vc digitar 12,6554
ele vai gravar exatamente ´12,6554´.
Espero ter ajudado...
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)