GARANTIR DESCONTO

Fórum Problemas com campo tipo Float (Urgente) #38229

22/08/2003

0

Caro Amigo

Estou gravando em uma tabela od dados de referência de uma cotação, de um sistema de compras, dentro do Delphi eu gravo usando o formatfloat, sendo que o formato é ´0.00´, com isso ele deveria somente colocar dois dígitos depois da virgula ou ponto, mas quando eu gravo no interbase ele joga 18 digitos, queria saber como faço para gravar somente 2 casas depois da vírgula.

Sem mais

Obrigado

Cabelo


Cabelo

Cabelo

Responder

Posts

22/08/2003

Afarias

Qual o tipo de dados no Interbase??

Se for qualquer tipo numérico (NUMERIC, DECIMAL ou FLOAT) vc não pode definir o número de casas ... afinal é um número!!

O número de casas decimais é só uma formatação e deve ser feita no cliente.

E, evite utilizar campos FLOAT -- dê preferência ao NUMERIC (ou DECIMAL) para obter maior precisão dos números, ex:

NUMERIC(10,2)


T+


Responder

Gostei + 0

26/08/2003

Lucianoko

Cara, eu tenho o mesmo problema que você.

Tenho um campo Numeric(6,2) no IB 6.5 que se refere ao custo de um item da NF.

Acontece que eu digito por exemplo: 13,15 e ao fazer a conta (multiplicar custo X quantidade) ele utiliza o seguinte numero 13,156666667.

Isto da problema no arredondamento e da diferença de centavo.

Eu ´resolvi´ o problema usando TabelaCampo.AsCurrency no lugar do AsFloat. E formatando as casas decimais com FormatFloat.

Se tiverem outra solução melhor não deixem de responder.

T+


Responder

Gostei + 0

26/08/2003

Luiz.claudio.vieira

Pq nao se deve usar campos do tipo float??? Qual a diferenca entre numeric 10,2 para um float?


Responder

Gostei + 0

26/08/2003

Afarias

|Pq nao se deve usar campos do tipo float??? Qual a diferenca entre
|numeric 10,2 para um float?

Campos FLOAT devem ser evitados quando é importante ´precisão´ -- valores que envolverão cálculos, financeiros.

campos numeric (dependendo do tamanho definido) possuem uma representação interna ´percisa´.


T+


Responder

Gostei + 0

27/08/2003

Luiz.claudio.vieira

Como seu que pra minha necessidade e interessante usar um 10,2 no lugar de um 15,2, o que significa estes números??

Atenciosamente

Luiz Claudio V. Santos


Responder

Gostei + 0

27/08/2003

Afarias

NUMERIC (X, Y)

onde::

X é a PRECISÃO (quantidade total de dígitos que o número terá)
Y é a ESCALA (quantidade de dígitos reservados para casas decimais)

X pode ser qualquer valor entre 1 e 18 e Y deve ser um valor menor ou igual a X

Ex:

Numeric (10, 2) --> 12345678.00

Numeric (8, 4) --> 1234.0000


Dependendo da PRECISÃO (X) o IB escolhe uma representação interna diferente (q melhor se adeque) q pode ser um tipo inteiro ou ponto-flutuante com tamanhos 16, 32 ou 64 bits

T+


Responder

Gostei + 0

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

Aceitar