Arredondamento de decimais[RESOLVIDO]

Estou utilizando objetos BigDecimais para trabalhar com calculos de preços…
Porém existem alguns produtos, vendidos em caixas, que as vezes são vendidos como unidades… e acabam ficando
com um preço de 3 casas decimais…

O problema está no arredondamento desses valores para colocar no cupom fiscal…pois as impressorinhas seguem as normas abnt “Norma ABNT NBR 5891” para arredondamento, mas não achei nenhuma opção no objeto bigdecimal para isso…

O problema estaria nos decimais cujo o último algarismo a ser retirado for 5

“Se o 5 for o último algarismo ou se ao 5 só seguirem zeros, o último algarismo a ser conservado só será aumentado de uma unidade se for ímpar.”

qual seria a função…
pois as funções que testei nenhuma ocorreu certo
ex… 8,345 … deveria nesse caso ficar 8,34
8,355… deveria nesse caso ficar 8,36 seguindo a norma da abnt
bg = bg.setScale(2, RoundingMode.CEILING);
mas não fica…
tentei com o ceiling,floor, down , up e os outros e não funciona…o único que funciona

http://download.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#ROUND_HALF_EVEN

entanglement…obrigado meu amigo… eu sou uma ant… kkkk estava olhando aqui…nesse link…e fui comparar… foi o único que não testei…não sei por que não testei…acho que esqueci… muito obrigado…esse fecha bem certinho com as regras abnt mesmo…

Mas então em todos os casos que se lidar com valores monetários e estiver utilizando Bigdecimais, então deve-se usar o Round_half_even…estou certo?

Deve-se usar no caso que a aplicação peça esse tipo de arredondamento (que é também conhecido por “banker’s rounding” ou arredondamento dos banqueiros. É que esse tipo de arredondamento faz com que eles nem percam, nem ganhem na média. )