gpt4 book ai didi

Java NumberFormat 生成 'EUR' 而不是 €

转载 作者:行者123 更新时间:2023-11-29 02:03:22 25 4
gpt4 key购买 nike

我正在开发一个支持多种用户语言的安卓应用。

在应用程序中,我使用 java.util.NumberFormat 来格式化货币:

String formatCurrency(String amount) {
// getCurrentLocale determines the locale from the user's selected language;
// if the user selects de_DE as the app's language, then this method will return Locale.Germany
final Locale locale = getCurrentLocale();
final NumberFormat formatter = NumberFormat.getCurrencyInstance(locale);
return formatter.format(new BigDecimal(amount));
}

我使用的测试设备是 HTC G2,它有两种设备语言选项 - 英语和西类牙语。

好的,现在我将我的应用程序的用户语言选择为“de_DE”:

// When my device language is english, if I call:
System.out.println(formatCurrency("1.79"));
// I got:
1.79 €

// But when I switch my device language to spanish:
System.out.println(formatCurrency("1.79"));
// I got :
1.79 EUR

我的问题是,在这两种情况下,我能否让 NumberFormat 为我提供 €?

最佳答案

为什么不总是使用您希望它显示的 Locale?忽略设备的 Locale

对于 Locale.ENGLISH :

String formatCurrency(String amount) {
final NumberFormat formatter = NumberFormat.getCurrencyInstance(Locale.ENGLISH);
return formatter.format(new BigDecimal(amount));
}

关于Java NumberFormat 生成 'EUR' 而不是 €,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com