我正在尝试根据接受语言标头格式化货币,但遇到了一些麻烦。
英美用户会理解 € 10,000,000.15,但不理解适用于德国的等值 € 10.000.000,15
另一方面,“$23,123 看起来”对于英美用户来说很好,但“$23,123.00”看起来很奇怪。“JPY23,123.00”也是如此。后者是我使用以下代码得到的:
java.text.NumberFormat format = java.text.NumberFormat.getCurrencyInstance(java.util.Locale.US); format.setCurrency(java.util.Currency.getInstance("JPY"));
更令人不安的是当我在 ja_JP 中显示 USD 时发生的舍入。如果我格式化 7.95,它只显示为“USD8”而不是“USD7.95”
有什么简单的方法可以避免这种情况吗?有没有更好的格式化货币库?我是否应该将其格式化为区域设置的数字(如果货币不是区域设置的默认值),然后添加货币代码或符号?