Fórum Problemas com campo Float #50952
10/05/2005
0
Olá!
Eu tenho um aplicativo para controle de estoque onde utilizo campos do tipo float para guardar a quantidade do produto.
O problema ocorre quando preciso multiplicar este campo por um outro campo também float. O Firebird (1.5) gera como valor para o campo um número muito grande com várias casas decimais e o pior é que errado.
Por exemplo: Tinha um produto zerado no estoque. Dei entrada de 2 caixas, cada uma contendo 2,23 do produto. Logo a quantidade que deveria entrar para a tabela deveria ser 4,46 mas quando vou ver na tabela, o número que aparece é: 4,46000003814697.
Desde já agradeço...
Eu tenho um aplicativo para controle de estoque onde utilizo campos do tipo float para guardar a quantidade do produto.
O problema ocorre quando preciso multiplicar este campo por um outro campo também float. O Firebird (1.5) gera como valor para o campo um número muito grande com várias casas decimais e o pior é que errado.
Por exemplo: Tinha um produto zerado no estoque. Dei entrada de 2 caixas, cada uma contendo 2,23 do produto. Logo a quantidade que deveria entrar para a tabela deveria ser 4,46 mas quando vou ver na tabela, o número que aparece é: 4,46000003814697.
Desde já agradeço...
Delphi32
Curtir tópico
+ 0
Responder
Posts
11/05/2005
Edilcimar
arredonde o número antes de salvar
Responder
Gostei + 0
11/05/2005
Vinicius2k
Colega,
Os tipos FLOAT e DOUBLE PRECISION servem exatamente para o que vc não quer: Alta precisão.
Para valores com poucos decimais e fixos, utilize os tipos NUMERIC(p,e) ou DECIMAL(p,e). Estes são os tipos ideais para armazenar valores e quantidades.
T+
Os tipos FLOAT e DOUBLE PRECISION servem exatamente para o que vc não quer: Alta precisão.
Para valores com poucos decimais e fixos, utilize os tipos NUMERIC(p,e) ou DECIMAL(p,e). Estes são os tipos ideais para armazenar valores e quantidades.
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)