Das Runden von BigDecimal auf * immer * hat zwei Dezimalstellen

Ich versuche, BigDecimal-Werte auf zwei Dezimalstellen aufzurunden.

Ich benutze

BigDecimal rounded = value.round(new MathContext(2, RoundingMode.CEILING));
logger.trace("rounded {} to {}", value, rounded);

aber es macht nicht konsequent was ich will:

rounded 0.819 to 0.82
rounded 1.092 to 1.1
rounded 1.365 to 1.4 // should be 1.37
rounded 2.730 to 2.8 // should be 2.74
rounded 0.819 to 0.82

Ich interessiere mich nicht für signifikante Ziffern, ich möchte nur zwei Dezimalstellen. Wie mache ich das mit BigDecimal? Oder gibt es eine andere Klasse / Bibliothek, die besser dafür geeignet ist?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage