[firebase-br] Ajuda cálculo de valores

Gladiston Santana gladiston em vidy.com.br
Seg Dez 9 11:15:46 -03 2019


Quando você mistura números tipificados como numeric(15,2), float,
numeric(xx,yy),...com outros números que tenham casas decimais diferentes,
o resultado será os de casas decimais maiores, isso é feito implicitamente
e geralmente dá confusão porque observamos um valor na entrada quando na
realidade internamente o valor foi implicitamente modificado por causa de
uma conversão interna de casas deciamais com a mistura de outros tipos
envolvidos.
O que você deve fazer é enfiar cast - talvez com round - nos seus
parâmetros de entrada para bater com o tipo esperado no valor de saída, daí
mesmo que você não aceite o resultado, o valor final será coerente com tudo
que você somou.

Em dom., 8 de dez. de 2019 às 13:41, Stanley Mendes <
stanleymfonseca em gmail.com> escreveu:

> Eu tenho coalesce(cast(VPMI.VALOR_PROCEDIMENTO as numeric(15,2)), 0);
>
> Isso me retorna no meu caso 115,42, até ai beleza
>
> mas preciso dividir isso por 60 e obter o valor exato, ou seja 115,42/60 =
> 1,923666666666667
>
> Fiz isso: coalesce(cast(VPMI.VALOR_PROCEDIMENTO as numeric(15,2)), 0) / 60
>
> mas me retorna 1,92, alguem sabe como proceder?



Mais detalhes sobre a lista de discussão lista