2012-05-10 29 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告訴你你需要知道的一切。

相關問題