Округление в Яве - PullRequest
       20

Округление в Яве

1 голос
/ 21 апреля 2011

У меня есть список, который содержит много десятичных значений.

  • Если я получу значение .032, я должен округлить его до 3,2%
  • Если я получу значение32,33 я должен округлить до 32%
  • Если я получу значение 32,66, мне нужно округлить до 33%
  • , если десятичная цифра 5,6,7,8или 9 раунд до следующего

как мне пойти на это?

Ответы [ 4 ]

4 голосов
/ 21 апреля 2011

Использование Math.round(). Это правильно округляет число вверх, если дробная часть равна 0,5 или больше.

1 голос
/ 21 апреля 2011

Если я правильно понял ваш вопрос:

Для первого пункта вы можете использовать DecimalFormat класс, см. API

Я не уверен, почему выхотел бы "округлить" 32,33 -> 32%, поскольку это не округление.Если вы анализируете пользовательские входные данные, которые могут быть заданы таким образом, вы можете разделить их на 100 (что дает 0,3233) и использовать DecimalFormat.

Для остальных вы можете использовать Math.round(), как указано ниже / выше

0 голосов
/ 21 апреля 2011

Использование MathUtils (Apache Commons Math)

MathUtils.round(double, scale, roundingMethod);

масштаб - Количество цифр справа от десятичной точки. (+/-)
roundingMethod : BigDecimal .ROUND_DOWN, # .ROUND_CEILING, # .ROUND_HALF_UP, ...

0 голосов
/ 21 апреля 2011

Math.round() и преобразовать его в процентную форму.

Я сомневаюсь в .032 случае. остальные выглядят хорошо.

...