2012-05-10 31 views
9

我试图做手工货币。这里是我的代码如何在java中设置自定义货币?

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

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

回答

23

试试这个:

NumberFormat df = NumberFormat.getCurrencyInstance(); 
DecimalFormatSymbols dfs = new DecimalFormatSymbols(); 
dfs.setCurrencySymbol("$"); 
dfs.setGroupingSeparator('.'); 
dfs.setMonetaryDecimalSeparator('.'); 
((DecimalFormat) df).setDecimalFormatSymbols(dfs); 
System.out.println(df.format(3333454)); 
+0

谢谢老兄,它的工作原理。但如何删除后面的2位十进制数字? – greenthunder

+1

添加'df.setMaximumFractionDigits(0);' – mprivat

+0

这似乎是一个很棒的解决方案!!!!! –

0

您已告知DecimalFormat必须格式化货币时使用哪种货币符号。但是你没有告诉它要格式化一种货币。 no-arg构造函数使用的默认模式不意味着格式化货币。为此使用专用模式。

The javadoc告诉你你需要知道的一切。

相关问题