12

我试图制作手动货币。这是我的代码

DecimalFormat df = new DecimalFormat();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setCurrencySymbol("$");
dfs.setGroupingSeparator('.');
dfs.setDecimalSeparator('.');
df.setDecimalFormatSymbols(dfs);
System.out.println(df.format(3333454));

程序输出为

3.333.454

为什么我设置的货币符号没有出现?

4

3 回答 3

29

尝试这个:

NumberFormat df = NumberFormat.getCurrencyInstance();
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setCurrencySymbol("$");
dfs.setGroupingSeparator('.');
dfs.setMonetaryDecimalSeparator('.');
((DecimalFormat) df).setDecimalFormatSymbols(dfs);
System.out.println(df.format(3333454));
于 2012-05-10T15:15:02.417 回答
4

因为您使用DecimalFormat标准模式。您需要为您的自定义模式提供\u00A4货币符号。

或者你使用NumberFormat.getCurrencyInstance().

于 2012-05-10T15:08:57.093 回答
1

您已经告诉 DecimalFormat 在必须格式化货币时使用哪个货币符号。但是您还没有告诉它格式化货币。无参数构造函数使用的默认模式并不意味着格式化货币。为此使用专用模式。

javadoc会告诉您您需要知道的一切。

于 2012-05-10T15:11:32.743 回答