[firebase-br] Casas Decimais

Antonio Bonelli Junior bonellijr em gmail.com
Seg Jul 6 18:10:46 -03 2009


Boa noite!

Peço a ajuda para entender o problema a seguir:

Campos da Tabela:
==============
QTDE                NUMERIC(15,3)
CUSTOTOTAL    NUMERIC(18,2)
CUSTOMEDIO   NUMERIC(18,6)

Exemplo:
-------------
QTDE = 150.000
CUSTOTOTAL = 183.50

CUSTOMEDIO = 1.223330, ou seja, CUSTOTOTAL/QTDE

Dúvida:
----------
O valor correto nesse caso seria 1.223333.

Pelo que eu entendi, está sendo considerado o número de casas decimais, o
resultado da soma de casas decimais do campo QTDE e CUSTOTOTAL, ou seja, 5
casas decimais.

Mesmo utilizando CUSTOMEDIO=CAST(CUSTOTOTAL/QTDE AS NUMERIC(18,6)) o
resultado não muda.

Sei que se eu aumentasse para 3 o número de casas decimais de CUSTOTOTAL,
obteria o resultado desejado com 6 casas.
A pergunta é:
-------------------
a) Por quê não é respeitado a definição dos campos corretamente, ou seja, se
o resultado da operação (183.50/150) é igual a 1.223333333... e o campo é
definido com 6 casas decimais, resultado final seria 1.223333 ?

b) Existe alguma outra maneira de fazer isso sem precisar mudar o número de
casas decimais de algum campo incluído na operação?

Desde já agradeço a todos

Antonio Bonelli Junior



Mais detalhes sobre a lista de discussão lista