英語以外のロケールのデバイスを使用しています。英語の通貨は次のようにフォーマットされています。
1 $
英語ロケールの場合、次のようなユーロ通貨を取得します。
€1
使用する
format.setCurrency(Currency.getInstance(currency));
return format.format(amount);
ドキュメントで見つかりました:
http://developer.android.com/reference/java/util/Currency.html#getSymbol ()
ロケールでのこの通貨のローカライズされた通貨記号を返します。つまり、"USD" と Locale.US を指定すると "$" が返されますが、"USD" と US 以外のロケールを指定すると "US$" が返されます。
ロケールが言語と国ではなく言語のみを指定する場合 (Locale.JAPAN または {new Locale("en", "US") ではなく、Locale.JAPANESE または {new Locale("en", "")} など) )})、ISO 4217 通貨コードが返されます。
ロケール固有の通貨記号がない場合は、ISO 4217 通貨コードが返されます。
同じ方法ではありませんが、おそらく関連しています。通貨での記号の順序付けでデバイスのロケールに違いが生じるのはなぜですか? 使用しているロケールに関係なく、1$ は正しくありません。
これを変更する方法はありますか?