Androidでは、特定の数値フォーマットの通貨をフォーマットしようとしています。ロケールと異なる通貨の通貨フォーマット
私の番号はフランスのフォーマット(9 876 543,21
)でフォーマットする必要がなく、通貨記号は通貨によって置かれるべきである:EUR
$9 876 543,21
ため
9 876 543,21 €
USD
ここに私のコードがあります(これはjava.util
クラスを使用しますが、結果はandroid.icu
パッケージと同じです):
final Double of = Double.valueOf("9876543.21");
final Currency usd = Currency.getInstance("USD");
final NumberFormat currencyInstance = NumberFormat.getCurrencyInstance(Locale.FRANCE);
currencyInstance.setCurrency(usd);
Log.d("test", currencyInstance.format(amount));
NumberFormatがフランス語のロケールを使用しているため、出力は9 876 543,21 $US
です。
注:ロケールは、数字の書式が適切であるためにはFRANCE(またはFRENCH)でなければならず、実際に通貨コード(EUR、USD、GBPなど)はわかりません。ウェブサービス。
フランス語の書式設定を希望しているが、シンボルの通貨プレースメントを尊重する必要があることをフォーマッタに伝える方法はありますか?
を達成するためにトリングているものであるあなたは、通貨に応じた記号を望む程度か?ネットのクイックスキムから、シンボルの配置は通貨ではなく表示ロケールによって決定されるように見えます(したがって、フランスのロケールでは$が正しいように見えます)。 – TripeHound
それは私がネットの周りを読んで学んだことです。しかし、私はちょうどこれのような通貨書式を実装するように言われているし、それは標準のNumberFormatterで実行可能かどうかと思っていた。私はおそらく、 "ビジネス"の人たちに、標準化されたフォーマットで通貨をフォーマットするためにロビー活動を始めるべきです。 – pdegand59