Округление в Java после деления BigDecimalJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Округление в Java после деления BigDecimal

Сообщение Anonymous »

Деление a и b дает 0,61550.
Я хочу округлить результат до трех десятичных знаков после запятой.

Код: Выделить всё

Long a = Long.valueOf(1058915);
BigDecimal b = BigDecimal.valueOf(1720415);
BigDecimal.valueOf(a).divide(b, 3, RoundingMode.HALF_UP);
Я ожидал, что RoundingMode.HALF_UP вернет 0,616, но вместо этого он возвращает 0,615, почему?
Однако, когда я просто использую его вот так :

Код: Выделить всё

BigDecimal.valueOf(0.61550).setScale(3, RoundingMode.HALF_UP)
Я получаю свои 0,616.
Может кто-нибудь объяснить, почему первый метод не выполняет округление или делает это по-другому?

Подробнее здесь: https://stackoverflow.com/questions/790 ... l-division
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»