BigDecimal one = new BigDecimal("3.123123)";
BigDecimal two = new BigDecimal("2.123123");
one = one.add(two); // сложение
System.out.println(one.setScale(3).toString()); //округление до сотых
BigDecimal two = new BigDecimal("2.123123");
one = one.add(two); // сложение
System.out.println(one.setScale(3).toString()); //округление до сотых
Есть мнение, что вместе с масштабом округления, хорошо задавать и режим округления (их 8 типов). Например:
ОтветитьУдалитьSystem.out.println(one.setScale(3,BigDecimal.ROUND_HALF_UP).toString());
Иначе могут быть исключения:
bd = new BigDecimal(1.5); // на самом деле 1.4999....
bd.setScale(1); // получаем исключение ArithmeticException