Deshalb sollte man bei Divisionen mit BigDecimal immer die Anzahl der gewünschten Dezimalen und den Rundungsmodus wie in der letzten Berechnung des kleinen Beispiels angeben.
public static void main(String[] args) {
// Berechnung ergibt das endliche Ergebnis 0.5
System.out.println(new BigDecimal(1).divide(new BigDecimal(2)));
// Hier tritt eine ArithmeticException auf.
System.out.println(new BigDecimal(10).divide(new BigDecimal(3)));
// Berechnung ergibt 3.33 und wirft keine Exception, da wir die Anzahl
// der Stellen beschränkt haben. Das Ergebnis ist aber natürlich nicht
// 100% korrekt, aber in der Praxis bei für die Anwendung genügend
// signifikante Stellen ausreichend.
System.out.println(new BigDecimal(10).divide(new BigDecimal(3), 2, BigDecimal.ROUND_HALF_UP));
}
No comments:
Post a Comment