Meu programa está tentando dividir 1 por 100233 e está dando esse erro com essa mensagem:
Non-terminating decimal expansion; no exact representable decimal result.
Eu entendi o erro, mas não faço idéia de como cura-lo. Alguem pode me dar uma luz?
Obrigado,
thingol
Dezembro 12, 2007, 10:49am
#2
Você está usando BigDecimal?
Toda vez que se faz uma divisão é necessário especificar a precisão.
Como ele disse, o resultado dá uma dízima periódica e não pode ser representado exatamente em decimal.
1 / 100233 = 0,0000099767541628006744285814053255914…
Veja a documentação de BigDecimal para ver qual é o overload do método divide que permite especificar a precisão.
Olá, estava com um problema parecido, para mim a solução foi passar um modo de arrendondamento:
RoundingMode.HALF_UP (existem outros).
Exemplo:
new BigDecimal(“1”).divide(new BigDecimal(“100233”),RoundingMode.HALF_UP)