Что мне нужно - это метод преобразования двойника в строку, которая округляется с использованием метода полураспада - то есть, если десятичное число округляется до 5, оно всегда округляется до предыдущего номера. Это стандартный метод округления большинства людей в большинстве ситуаций.Как округлить число до n знаков после запятой в Java
Я также хотел бы отображать только значимые цифры, т. Е. Не должно быть никаких конечных нулей.
Я знаю один способ сделать это состоит в использовании 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?
Это, вероятно, лучшее решение, представленное до сих пор. Причина, по которой я не заметил этот объект, когда я впервые посмотрел на класс DecimalFormat, заключается в том, что он был введен только в Java 1.6. К сожалению, я ограничусь использованием 1.5, но будет полезно знать будущее. – 2008-10-01 13:07:09