Как сделать строки из чисел с плавающей точкой с помощью '.' (точка) в качестве десятичного разделителя и не более 3 цифр после числа с плавающей запятой? - PullRequest
1 голос
/ 03 января 2012

У меня есть этот код:

public String formatDouble(double d) {
   return String.format("???", d); //Should I use NumberFormat here?
}

Для образца ввода:

1.00
1,00
1,23
1.234567

Я хотел бы получить этот вывод:

1
1
1.23
1.234

Как я могу настроить шаблон (или, возможно, экземпляр NumberFormat) для получения правильного вывода?

Ответы [ 3 ]

2 голосов
/ 03 января 2012

Это будет примерно то, что вам нужно:

Decimalformat df = new DecimalFormat("0.###");
df.setRoundingMode(RoundingMode.FLOOR);
df.format(1.2345);

Однако десятичный разделитель (точка) будет зависеть от текущей локали.Чтобы переопределить его, вы можете указать собственные символы формата (см. DecimalFormat.setDecimalFormatSymbols()).

0 голосов
/ 08 февраля 2012

Простой способ: String.format("%.2f", 1234.23)

Если вам нужен разделитель тысяч, добавьте запятую перед точкой: String.format("%,.2f", 1234.23) -> результат: 1,234.23.

0 голосов
/ 03 января 2012

DecimalFormat должен делать то, что вам нужно.

...