форматировать число с плавающей точкой в ​​Java (#. ###. ##) - PullRequest
0 голосов
/ 30 января 2019

Я бы хотел отформатировать числа с плавающей точкой следующим образом:

1432.432342003 до 1.432,43

Я могу отформатировать его с 1432.432342003 до 1432,43 loike так:

 DecimalFormat decimalFormat = new DecimalFormat("#.##");
 String pretyStr = decimalFormat.format(input);

так, как этого добиться, может быть, есть простой способ, такой как #. ###. ## - я не хочу отрывать int от части и откладывать часть

Ответы [ 4 ]

0 голосов
/ 30 января 2019

Вот так вот:

  public static String getPrettyPrintVal(double input){
    final DecimalFormat decimalFormat = new DecimalFormat("###,###.###", DecimalFormatSymbols.getInstance(Locale.GERMANY));
    return decimalFormat.format(input);
}

3214234.234 ==> 3.214.234,234

0 голосов
/ 30 января 2019

То, что вы хотите, называется разделителем тысяч, в англоязычных странах обычный формат - 12 345 678,90

Вы можете использовать следующий формат с десятичным форматом: ###,###.### Результат 123456,789 с этим форматом должен быть 123 456,789

Вы можете найти больше информации о DecimalFormat здесь

EDIT1: Пример

 DecimalFormat decimalFormat = new DecimalFormat("###,###.##");
0 голосов
/ 30 января 2019

Формат, который вы ищете:

DecimalFormat decimalFormat = new DecimalFormat("#,###.##");

Но будьте осторожны, разделители могут меняться в зависимости от вашей локали, и вам может понадобиться использовать NumberFormat для управления этим

0 голосов
/ 30 января 2019

попробуйте это:

 DecimalFormat decimalFormat = new DecimalFormat("#,###.##");
 String pretyStr = decimalFormat.format(input);
...