Valores Monetários

Olá galera,
Estou começando a desenvolver uma aplicação que trabalhará com valores monetários. Gostaria de saber qual o melhor tipo para tratar este tipo de valor. Nesta aplicação, os valores passarão por alguns cálculos, e manter a precisão é importante. Pesquisei sobre o assunto e alguns indicam o uso de Double com 6 ou mais casas decimais, outros indicam o tipo Integer, considerando que os dois últimos dígitos sejam os centavos, mas enfim, ainda não cheguei a uma conclusão. Qual vocês indicariam?

[quote=adrianoneres]Olá galera,
Estou começando a desenvolver uma aplicação que trabalhará com valores monetários. Gostaria de saber qual o melhor tipo para tratar este tipo de valor. Nesta aplicação, os valores passarão por alguns cálculos, e manter a precisão é importante. Pesquisei sobre o assunto e alguns indicam o uso de Double com 6 ou mais casas decimais, outros indicam o tipo Integer, considerando que os dois últimos dígitos sejam os centavos, mas enfim, ainda não cheguei a uma conclusão. Qual vocês indicariam?[/quote]
indico o BigDecimal[.

leia este artigo para entender porque.

Recomendo o uso do padrão Money
No livro Padrões de Arquitetura de Aplicações Corporativas tem um bom exemplo de implementação. Fala também dos problemas utilizados ao se trabalhar com moedas, como rateio, e define formas de contornar esse problema.
Exemplo, ao ratear 4 Dinheiros por 3 teriamos 3 Dinheiros de 1,3333333333333333333333333333333, e eu não tenho como dar para alguem 0,3333333 centavos! BigDecimal não resolve esse tipo de problema. Ao trabalhar com moedas é necessário uma nova abordagem, a meu ver.

Boa tarde!!

Uso muito o BigDecimal para cálculo de impostos e etc…!!

Att.

O BigDecimal é bem usado nestes casos. O custo dele é alto, mas compensa.