Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Regra do Oracle Bankers


A aritmética decimal precisa é um assunto grande e complexo.

Google 'arredondamento decimal mike colishaw' se você quiser ler o Oracle ahem sobre o assunto.

Basicamente, existem muitos esquemas de arredondamento possíveis:-

Arredonde tudo para baixo - o padrão na maioria das linguagens, incluindo C, pois o Oracle é escrito em C, provavelmente é por isso que eles fazem isso.

Arredondar tudo - raramente visto, mas ocasionalmente precisa ser implementado devido a regras obscuras de mercado e impostos.

Meio arredondamento básico - qualquer coisa acima de 0,5 arredonda para cima todo o resto arredonda para baixo.

Meio Arredondamento Generoso - qualquer coisa abaixo de 0,5 arredonda para baixo tudo o resto arredonda para cima.

Bankers Rounding - Os números pares seguem a regra Basic Half Rounding, os números ímpares seguem a regra Generous Half Rounding. Isso raramente é visto em bancos reais que preferem arredondar para cima se o dinheiro chegar e arredondar para baixo quando estiver indo para o cliente.

ORACLE NUMBER é, na verdade, uma implementação de aritmética decimal muito boa e é precisa até onde vai.