Формат Android String - цена

Есть ли простой форматтер для форматирования моей строки в качестве цены?

Итак, моя строка: 300000 я бы хотел "300 000" с пространством

or 1000000 "1 000 000"

Лесли

Ответ 2

Это делает:

String s = (String.format("%,d", 1000000)).replace(',', ' ');

Ответ 3

Вы не можете сделать это с помощью простой строки формата, но с классами DecimalFormat и DecimalFormatSymbols.

int value = 123456789;
DecimalFormat fmt = new DecimalFormat();
DecimalFormatSymbols fmts = new DecimalFormatSymbols();

fmts.setGroupingSeparator(' ');

fmt.setGroupingSize(3);
fmt.setGroupingUsed(true);
fmt.setDecimalFormatSymbols(fmts);

TextView txt = (TextView) findViewById(R.id.txt);
txt.setText(fmt.format(value));

В этих классах есть много и много других опций. Например, вы можете разделять числа точками или запятыми или использовать специфичные для локали настройки.

Например, вы можете использовать метод fmt.setCurrency:

fmt.setCurrency(Currency.getInstance(Locale.GERMANY));

Ответ 4

double yourPrice = 1999999.99;
String formattedPrice = new DecimalFormat("##,##0.00€").format(yourPrice);

вывод:

formattedPrice = 1.999.99,99 €