0

我浏览了 SO,但没有找到与我类似的问题的答案。

我需要根据语言环境格式化货币。

例子:

我有金额11349,我的地区在美国的某个地方。我从 CMS 中提取的格式如下所示:$#,##0.00

我需要使用该模板来获得金额“11349”,如下所示:$11,349.00

有谁知道如何解决这个问题?如果已经有关于 SO 的问题可以解决这个问题,我很抱歉 - 我没有找到它,如果你能指出我将不胜感激。

4

3 回答 3

4

NumberFormat支持Locales并根据您的问题生成格式,并避免使用正则表达式:

Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(11349));  
于 2013-08-16T13:01:33.687 回答
1

如果您的语言环境是美国,那么这应该会产生所需的结果

    String s = new DecimalFormat("$#,##0.00").format(11348);
于 2013-08-16T13:15:15.167 回答
0

使用区域设置(“en”,“US”)

Locale locale = new Locale("en", "US");
NumberFormat nf = NumberFormat.getCurrencyInstance(locale); //getting currency
System.out.println(nf.format("11349")); //cast string to numberFormat 

然后你会得到输出

$11,349.00
于 2013-08-16T13:02:41.830 回答