如何在Java中为区域设置格式化货币

Ric*_*ich 5 java internationalization

我很惊讶我发现如何做到这一点真的很麻烦.在我看来它应该非常简单.也许我在找错了地方.

假设我有以下代码:

double amount = 123.45D; //yes, I know that I should be using longs
Locale uk = Locale.UK;
Locale fr = Locale.FR;
Currency euro = Currency.getInstance("EUR");
Run Code Online (Sandbox Code Playgroud)

如何获取NumberFormat实例,让我打印出为Locale正确格式化的123.45值?即我分别想要英国和法国的以下内容:

€123.45
123,45 €
Run Code Online (Sandbox Code Playgroud)

我无法使用,NumberFormat.getCurrencyInstance(Locale)因为这将英国格式格式化为Sterling(£).我正在寻找的是NumberFormat.getCurrencyInstance(Locale, Currency),但这似乎并不存在.

有任何想法吗?

Joa*_*uer 4

用于修改通过 获取的NumberFormat.setCurrency()特定货币所使用的货币。NumberFormatNumberFormat.getCurrencyInstance(Locale)