@Che_Bu_Rashka

Работа с BigDecimal, как отбросить дробную часть?

Мне надо вычислить A * B / 100
BigDecimal result = null;
        BigDecimal a = new BigDecimal(this.getA());
        a.setScale(2, RoundingMode.UP);

        BigDecimal b = new BigDecimal(this.getB());
        b.setScale(2, RoundingMode.UP);

        result = a.multiply(b).divide(new BigDecimal(100), RoundingMode.UP);
        result.setScale(0, RoundingMode.UP);
        if (result != null) {
           System.out.println (result.toString());
        }


Результат получается - 15.874574. А нужно 15, то есть отбросить дробную часть. Как понял setScale(0, RoundingMode.UP) должно помочь, но нет... К слову в А 2 знака после запятой, а в В - 4. Вот он результат выдал с 6-ю
Как делается? Спасибо.
  • Вопрос задан
  • 2217 просмотров
Решения вопроса 1
setScale() возвращает новый экземпляр BigDecimal. А вы его игнорируете.
result = result.setScale(0, RoundingMode.UP);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
BigDecimal a = BigDecimal("15");
BigDecimal b = BigDecimal("2");
BigInteger c = a.divide(b).toBigInteger();
Ответ написан
@Cr2ed
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы