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

javadocは、あなたが知る必要のあるすべてを教えてくれます。

于 2012-05-10T15:11:32.743 に答える