Wie würde ich KORREKT einen BigDecimal auf den nächsten ganzen Wert runden?Round BigDecimal auf den nächsten Integralwert
Zum Beispiel
1.2 --> 1
1.5 --> 2
1.6 --> 2.
Ich versuchte
BigDecimal val = new BigDecimal(1.5);
System.out.println(val.setScale(0, RoundingMode.HALF_UP))
Aber das gibt mir immer noch 1. NOT 2 als erwartet.
Hat jemand zufällig wissen, wie man das richtig macht?
Dank
[Ihr genauen Code ist 2 für mich auf ideone] (http://ideone.com/AoQnQ), es muss etwas anderes sein, das du tust, das ist falsch. – dasblinkenlight
funktioniert auch für mich. – gorjusborg
Multiplizieren Sie Ihre Zahl mit 10 mit der Anzahl der Dezimalstellen, die Sie vor dem Runden als Test tragen. In Ihrem Beispiel würden Sie mit 10 multiplizieren. Dies zeigt Ihnen, welche Nummer Sie in setScale verwenden. –