[firebase-br] Casas Decimais
Eduardo Jedliczka
edujed em gmail.com
Seg Jul 6 18:41:52 -03 2009
Antonio, sua definição está certa.
quanto ao CAST, ele resolverá o problema, caso seja colocado no local
correto! Pois no exemplo dado, o cast irá adicionar a SEXTA casa após já
ter realizado a conta com CINCO.
experimente: CUSTOMEDIO=CAST(CUSTOTOTAL AS NUMERIC(18,6)) / quantidade
Abraço
Eduardo
Em Seg, 2009-07-06 às 18:10 -0300, Antonio Bonelli Junior escreveu:
> 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
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
Mais detalhes sobre a lista de discussão lista