Android字符串格式 - 价格

lac*_*cas 13 android

是否有一个简单的格式化程序来格式化我的String作为价格?

所以我的字符串是:300000我想要"300 000"的空间

or 1000000 "1 000 000"
Run Code Online (Sandbox Code Playgroud)

莱斯利

Can*_*ner 31

这样做:

String s = (String.format("%,d", 1000000)).replace(',', ' ');
Run Code Online (Sandbox Code Playgroud)

  • 这是更恰当和完整的答案 (3认同)

Ket*_*mar 15

使用Formatter类来格式化字符串

format("%,d", 1024);
Run Code Online (Sandbox Code Playgroud)

之后用空间替换.

http://developer.android.com/reference/java/util/Formatter.html


Kai*_*ini 10

您不能使用简单的格式字符串,但使用DecimalFormatDecimalFormatSymbols类.

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));
Run Code Online (Sandbox Code Playgroud)

这些课程中有很多其他选项.例如,您可以使用点或逗号分隔数字或使用特定于语言环境的设置.

例如,您可以使用以下fmt.setCurrency方法:

fmt.setCurrency(Currency.getInstance(Locale.GERMANY));
Run Code Online (Sandbox Code Playgroud)


Bia*_*aro 8

double yourPrice = 1999999.99;
String formattedPrice = new DecimalFormat("##,##0.00€").format(yourPrice);
Run Code Online (Sandbox Code Playgroud)

输出:

formattedPrice = 1.999.99,99€