Предотвратите округление в строке.формат.%"(2f", doubleValue) на языке Java
Как запретить String.format("%.2f", doubleValue);
от округления (округлить половину алгоритма) вместо того, чтобы просто усечь его?
например
doubleValue = 123.459
после форматирования,
doubleValue = 123.46
Я просто хочу сбросить последнюю цифру,
123.45
Я знаю, что есть другие способы сделать это, я просто хочу знать, возможно ли это с помощью строки.формат.
4 ответов
вы всегда можете установить режим округления:
http://java.sun.com/javase/6/docs/api/java/math/RoundingMode.html
и затем используйте String.Формат() HALF_EVEN используется по умолчанию, но вы можете изменить его на CEILING
другой не такой гибкий подход будет (но это не то, о чем вы спрашивали):
DecimalFormat df = new DecimalFormat("###.##");
df.format(123.459);
похоже, что ответ-большое жирное нет. http://java.sun.com/javase/6/docs/api/java/util/Formatter.html#dndec "тогда значение будет округлено с использованием алгоритма round half up"
Мне кажется странным, что они это сделают, так как NumberFormatter позволяет установить RoundingMode. Но, как ты говоришь, есть и другие способы. Очевидно, проще всего вычесть .005 от стоимости первого.