2012-05-10 16 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)); 

あるプログラムの出力Iが設定された通貨記号が表示されていなかったのはなぜ

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に伝えました。しかし、あなたは通貨をフォーマットするように言いませんでした。引数なしのコンストラクタによって使用されるデフォルトのパターンは、通貨をフォーマットするためのものではありません。そのために専用のパターンを使用してください。

The javadocには、知る必要があるすべての情報が表示されます。

関連する問題