1
爲最終用戶提供貨幣列表。他們可以隨時選擇他們的興趣之一。因此,java.text.NumberFormat
中使用的語言環境需要根據所選貨幣進行更改。這似乎並不重要。根據動態貨幣值動態更改區域設置
Locale locale = new Locale("en", "US");
NumberFormat decimalFormat = NumberFormat.getCurrencyInstance(locale);
decimalFormat.setGroupingUsed(true);
decimalFormat.setCurrency(Currency.getInstance("USD"));
System.out.println(decimalFormat.format(BigDecimal.valueOf(1.12)));
上面的代碼將顯示正確的貨幣值$1.12
。由於貨幣(和區域設置)是根據用戶的偏好在運行時動態確定的,因此如果USD
更改爲與GBP
不同的內容,則相關區域設置也需要從en_US
更改爲en_GB
。否則,它將顯示GBP1.12
,其中£1.12
預計(爲簡潔起見,匯率除外)。
有沒有一種方法可以根據在運行時動態提供的貨幣代碼來確定區域設置?