Как округлить число до 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

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