gpt4 book ai didi

java - NumberFormat.getCurrencyInstance() 的货币格式基于什么标准?

转载 作者:搜寻专家 更新时间:2023-11-01 03:48:43 25 4
gpt4 key购买 nike

我需要根据区域设置正确设置货币格式,但我们的客户不同意 Java 基于某些区域设置的默认格式设置。

Java 用于 NumberFormat.getCurrencyInstance() 返回的 NumberFormat 的格式是什么标准(如果有),是否在任何地方记录了这一点?

下面是一些示例代码,展示了 Java 如何根据区域设置设置货币格式。

public static void main(String[] args)
{
displayCurrency(Locale.ENGLISH);
displayCurrency(Locale.FRENCH);
displayCurrency(Locale.ITALIAN);
}

static public void displayCurrency( Locale currentLocale) {

Double currencyAmount = new Double(9876543.21);

DecimalFormatSymbols symbol = new DecimalFormatSymbols(currentLocale);
symbol.setCurrencySymbol("$");

DecimalFormat currencyFormatter = (DecimalFormat)
NumberFormat.getCurrencyInstance(currentLocale);
currencyFormatter.setDecimalFormatSymbols(symbol);

System.out.println(
currentLocale.getDisplayName() + ": " +
currencyFormatter.format(currencyAmount));
}

输出:

English: $9,876,543.21
Italian: $ 9.876.543,21
French: 9 876 543,21 $

最佳答案

Java 中的 I18n 由 UNICODE 标准定义,因此您可以在 http://www.unicode.org/cldr/charts/latest/supplemental/detailed_territory_currency_information.html 找到有关如何格式化货币的信息。

在源代码中,相同的信息存储在 JDK rt.jar 和 localedata.jar 文件中,在包 sun.util.resources 和 sun.text.resources 中(文件名为 CurrencyNames_xx_XX.class)

关于java - NumberFormat.getCurrencyInstance() 的货币格式基于什么标准?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34789958/

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