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