Как округлить число до n десятичных знаков в JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как округлить число до n десятичных знаков в Java

Сообщение Anonymous »

Мне нужен метод преобразования двойного числа в строку, которая округляется с использованием метода пополам вверх, т. е. если десятичная дробь, которую нужно округлить, равна 5, она всегда округляется до следующего числа. Это стандартный метод округления, который большинство людей ожидают в большинстве ситуаций.

Я также хотел бы, чтобы отображались только значащие цифры, т. е. не должно быть никаких конечных нулей.< /p>

Я знаю, что один из способов сделать это — использовать метод String.format:

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

String.format("%.5g%n", 0.912385);
возвращает:

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

0.91239
и это здорово, однако он всегда отображает числа с 5 знаками после запятой, даже если они не имеют значения:

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

String.format("%.5g%n", 0.912300);
возвращает:

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

0.91230
Другой метод — использовать DecimalFormatter:

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

DecimalFormat df = new DecimalFormat("#.#####");
df.format(0.912385);
возвращает:

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

0.91238
Однако, как вы можете видеть, здесь используется округление до половины. То есть, оно будет округлено в меньшую сторону, если предыдущая цифра четная. Мне бы хотелось вот этого:

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

0.912385 -> 0.91239
0.912300 -> 0.9123
Как лучше всего добиться этого в Java?

Подробнее здесь: https://stackoverflow.com/questions/153 ... es-in-java
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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