Java 默认 NumberFormat 货币符号

标签 java

我正在使用 NumberFormat 的 format() 方法在我的应用程序中设置货币格式。获取货币实例时,我没有将任何区域设置传递给该方法。 我已将此代码部署到包含两个节点/服务器的应用程序集群。有趣的是,在其中一台应用程序服务器上,formattedAmmt 是 $xxxx.xx,但在另一台应用程序服务器上,它是 ¤xxxx.xx。据我了解,这个字符是一个通用货币符号,当没有特定的语言环境可用时,JDK 使用它。我的理解正确吗?如果是,为什么它可以在其中一个应用程序服务器上运行,但在另一个应用程序服务器上却不能运行?我们在应用程序服务器/JVM 属性中没有看到任何默认区域设置或此类属性。

double amount = xxxx.xx;
String formattedAmt = NumberFormat.getCurrencyInstance().format(amount);

PS:我正在将此应用程序部署到使用 JDK 1.6 的 WebSphere 应用程序服务器集群。

最佳答案

基于java文档:https://docs.oracle.com/javase/6/docs/api/java/text/NumberFormat.html#getCurrencyInstance()

公共(public)静态最终 NumberFormat getCurrencyInstance() 返回当前默认区域设置的货币格式。

它将基于服务器的当前区域设置。这就是为什么你可能有两种不同的行为。

如果要指定本地,则必须使用以下方法:

public static NumberFormat getCurrencyInstance(Locale inLocale) 返回指定区域设置的货币格式

关于Java 默认 NumberFormat 货币符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38983071/

相关文章:

java - Android Studio 转换异常 : Error:Execution failed for task ':app:transformClassesWithDexForDebug'

java - 如何获取要在 Spring 中创建的 bean 集?

Java MQQueueConnection 获取客户端和服务器版本

java - 使用docker文件在Oracle初始化期间初始化架构

java - 如何在ANTLR中找到children上下文的children?

java - IDE 能否在运行前识别出所有编译错误?

java - 不幸的是应用程序已停止(第一次 Activity )

java - 如何使用 XFire 创建文档化的 WSDL

java - 如何从jsp文件中检索数据库中的数据?

java - 如何使用 UnboundID LDAP SDK 查找用户在 LDAP 中拥有的所有角色?