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.