Fórum Problema com decimais do Interbase no Delphi #230188
05/05/2004
0
Enfrentei o seguinte problema com o Delphi:
Tenho um banco de dados do Interbase 6 e uma tabela com campos numéricos que criei como NUMERIC(9,2).
O problema é que ao recuperar estes valores no Delphi através de uma Query em SQL...
. Valor : = QueryNotas.FieldByName(´preco´).Value;
. Obs.: Ao invés de .Value, também tentei AsFloat, AsVariant e
. AsCurrency sem sucesso.
...o Delphi não recupera as casas decimais, apenas a parte inteira dos valores deste campo:
Tive que aumentar o tamanho do campo para NUMERIC(10,2) para que o Delphi reconheça as casas decimais. Abaixo de (10,2) ele não recupera os valores decimais.
Alguém sabe porque isso acontece? E se existe alguma outra solução além de ampliar o tamanho dos campos?
Obrigado.
Alexandre7
Curtir tópico
+ 0Posts
05/05/2004
Adeno
os campos tipo 990,89 com essas casas decimais são tipo arredondadas, por exemplo 56,30 ficaria 56,3 ou seja, vai desprezar uma casa... bem se for isso utilize esta função =>
Edit1.Text:=FormatFloat(´R$ #,0.00´,Fields.Fields[0].Asinteger);
Neste caso ela sempre vai retornar os floats com 2 casas decimais e um R$ na frente, eu fiz isso usando dbExpress
Gostei + 0
06/05/2004
Alexandre7
O Delphi sequer está arredondando, está simplesmente ignorando o valor decimal 0,56.
Eu acho que é um problema no Delphi (utilizo o 6), pois, quando consulto o banco de dados pelo IBExpert, o valor aparece certo (90,56).
Só consegui resolver o problema quando aumentei o tamanho do campo para NUMERIC(10,2), então o Delphi passou a somar corretamente e exibir o resultado 190,56.
Gostaria apenas de saber o porque disso e se a única solução é realmente utilizar tamanhos acima de 9 para a parte inteira do campo, ou seja, acima de NUMERIC(9,2).
Gostei + 0
07/05/2004
Alexandre7
Gostei + 0
07/05/2004
Alexandre7
Gostei + 0
07/05/2004
Fer_nanda
Gostei + 0
07/05/2004
Rogerio_amorim
Rogério Amorim
Gostei + 0
07/05/2004
Aroldo Zanela
Você está utilizando BDE e dialeto 3? Se sim, basta mudar de componentes de acesso aos dados, como: IBX, ADO, DBX, Zeos, etc.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)