Строковый формат java

Мне нужно отформатировать десятичное значение в строку, где я всегда отображать по крайней мере 2 десятичных знаков и не более 4.

так например

"34.49596" would be "34.4959" 
"49.3" would be "49.30"

это можно сделать с помощью команды String.format? Или есть более простой / лучший способ сделать это в Java.

6 ответов

Решение

Вы хотите java.text.DecimalFormat.

DecimalFormat df = new DecimalFormat("0.00##");
String result = df.format(34.4959);

Да, вы можете сделать это с String.format:

String result = String.format("%.2f", 10.0 / 3.0);
// result:  "3.33"

result = String.format("%.3f", 2.5);
// result:  "2.500"

Вот небольшой фрагмент кода, который делает эту работу:

double a = 34.51234;

NumberFormat df = DecimalFormat.getInstance();
df.setMinimumFractionDigits(2);
df.setMaximumFractionDigits(4);
df.setRoundingMode(RoundingMode.DOWN);

System.out.println(df.format(a));

java.text.NumberFormat, вероятно, то, что вы хотите.

NumberFormat и DecimalFormat определенно то, что вы хотите. Также обратите внимание на NumberFormat.setRoundingMode() метод. Вы можете использовать его для управления тем, как округление или усечение применяются во время форматирования.

Вы хотите java.text.DecimalFormat

Другие вопросы по тегам