places - string format float java




Предотвратить завершение в String.format("%. 2f", doubleValue) в Java (3)

Вы всегда можете установить режим округления:

http://java.sun.com/javase/6/docs/api/java/math/RoundingMode.html

а затем использовать String.Format () HALF_EVEN используется по умолчанию, но вы можете изменить его на ПОТОЛОК

другой не такой гибкий подход будет (но это не то, о чем вы просили):

DecimalFormat df = new DecimalFormat("###.##");
df.format(123.459);

Как предотвратить String.format("%.2f", doubleValue); от округления (алгоритм round half up) вместо того, чтобы просто обрезать его?

например

doubleValue = 123.459

после форматирования,

doubleValue = 123.46

Я просто хочу отказаться от последней цифры,

123.45

Я знаю, что есть другие способы сделать это, я просто хочу знать, возможно ли это с помощью String.format.


Похоже, ответ - это большой жир НЕТ. http://java.sun.com/javase/6/docs/api/java/util/Formatter.html#dndec ", тогда значение будет округлено с использованием алгоритма round half up"

Мне показалось странным, что они это сделают, поскольку NumberFormatter позволяет вам устанавливать RoundingMode. Но, как вы говорите, есть другие способы сделать это. Очевидно, что проще всего вычесть .005 с вашего значения.


используйте String.format ("%. 2f", doubleValue - .005)





format