Możliwe duplikaty:
ArithmeticException thrown during BigDecimal.divideDzielenie BigDecimals skutkuje ArithmeticException
Wynika to w ArithmeticException: http://ideone.com/RXeZw
Zapewnienie skalę i tryb zaokrąglania da mi zły wynik. Ten przykład powinien dać wynik 50,03%. Jak zaokrąglić to poprawnie?
Dla łatwiejszego odniesienia, jest to kod:
BigDecimal priceDiff = BigDecimal.ONE
.subtract(new BigDecimal(9.99)
.divide(new BigDecimal(19.99)))
.multiply(new BigDecimal(100));
System.out.println(priceDiff.toPlainString());
Tak, właśnie pomyliłem się o tych wszystkich liczbach :-) – dtrunk
@dtrunk Używam "podwójnego" mniej mylącego. ;) –
Nie mogę użyć podwójnego, ponieważ spowodowałoby to tyle zmian w kodzie – dtrunk