Hi Leute,
irgendwie schein MathContext falsch zu runden oder wie erklärt ihr euch das?
Ich möchte nach der 6. Nachkommastelle, dass der Wert gerundet wird. In manchen Fällen rundet MathContext aber schon nach der 5. Nachkommastelle. BigDecimal hat das Problem nicht (Methode "divide").
Beispiel:
Wie gesagt, wenn ich das Ganze mit der divide-Methode von BigDecimal ausführe wird immer richtig gerundet. Aber warum macht MathContext das nicht? Kann sich das jemand erklären?
Danke schonmal im Voraus!
Gruß Nova
irgendwie schein MathContext falsch zu runden oder wie erklärt ihr euch das?
Ich möchte nach der 6. Nachkommastelle, dass der Wert gerundet wird. In manchen Fällen rundet MathContext aber schon nach der 5. Nachkommastelle. BigDecimal hat das Problem nicht (Methode "divide").
Beispiel:
Code:
//7 / 12 = 0.583333 - richtig!
double theResult = 7d / 12d;
BigDecimal theBig = new BigDecimal(theResult, new MathContext(6, RoundingMode.DOWN));
//8 / 6 = 1.33333 - falsch! Wieso wurde nach dem 5. Zeichen gerundet? Es gibt auch noch mehr Nachkommastellen
(weit über 10).
double theResult = 8d / 6d;
BigDecimal theBig = new BigDecimal(theResult, new MathContext(6, RoundingMode.DOWN));
Wie gesagt, wenn ich das Ganze mit der divide-Methode von BigDecimal ausführe wird immer richtig gerundet. Aber warum macht MathContext das nicht? Kann sich das jemand erklären?
Danke schonmal im Voraus!
Gruß Nova