Sir*_*nce 2 java locale number-formatting
我正在尝试将 NumberValue 格式化为当前区域设置格式的字符串。
\n\n例如,对于 Locale.Germany,这些将是我试图获得的结果:
\n\n1 -> 1,00\n1.1 -> 1,10\n0.1 -> 0,10\nRun Code Online (Sandbox Code Playgroud)\n\n我尝试过的:
\n\nString test1 = NumberFormat.getInstance().format(1.1);\n// -> 1,1\nString test2 = NumberFormat.getCurrencyInstance().format(1.1);\n// -> 1,10 \xe2\x82\xac\nRun Code Online (Sandbox Code Playgroud)\n\n如何获得与第二个示例相同的格式,而不使用货币符号?或者,我如何确保第一个示例的结果始终具有当前区域设置所需的小数位数?
\n\n编辑:由于有些货币有 0、2 或 3 位小数,我认为将小数设置为固定金额不会产生正确的结果。
\n\n此外,有些货币的符号在前面,有些在后面,因此切断最后一个字符可能也不起作用。
\n\nhttp://apps.cybersource.com/library/documentation/sbc/quickref/currencies.pdf
\njava.util.Currency提供必要的信息。在纯 Java 代码中打印没有货币符号的货币值的合理方法是获取一个通用NumberFormat实例并将其配置为使用适当对象定义的位数Currency:
NumberFormat numberFormat = NumberFormat.getInstance(myLocale);
Currency currency = Currency.getInstance(myLocale);
numberFormat.setMinimumFractionDigits(currency.getDefaultFractionDigits());
Run Code Online (Sandbox Code Playgroud)
如果您需要特定货币而不是您使用的区域设置的默认货币,请使用替代并StringCurrency.getInstance()提供适当的货币代码。
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |