Dlaczego poniższy kod powoduje podniesienie wyjątku pokazanego poniżej?Wyrażenie wyjątku arytmetycznego: "nierozszerzające rozwinięcie dziesiętne, brak dokładnego reprezentowalnego wyniku dziesiętnego"
BigDecimal a = new BigDecimal("1.6");
BigDecimal b = new BigDecimal("9.2");
a.divide(b) // results in the following exception.
-
java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.
Nie sądzę, że potrzebuje 'toPlainString'. –
działa to również w przypadku błędów jaspisowych, ponieważ http://community.jaspersoft.com/questions/528968/help-please-adding-twoja-dwa_dwóch-wartości #comment-807628 – shareef
2 NIE jest "precyzją"; to jest 'scale'. Zobacz http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#divide%28java.math.BigDecimal,%20int,%20java.math.RoundingMode%29 –