正确格式化货币到小于Locale指定的小数位

时间:2011-02-15 12:25:03

标签: java android localization locale

在法国和其他国家/地区,货币符号在货币金额之后,而在其他国家/地区,货币符号在之前,加上小数点分隔符是逗号而不是点(£0.000,00 €)。

如果我在Android设备上使用以下Java代码(来自内存,可能无法编译),我可以获得一个NumberFormat来正确格式化:

NumberFormat format = NumberFormat.getCurrencyInstance(Currency.get(Locale.FRANCE));

NumberFormat格式化为正确的小数位数(上例中为两个)。

我想为财务应用格式化为10位小数,同时保持小数点分隔符和“符号侧”正确。

我很乐意构建自己的格式表达式 - 问题是找出特定LocaleCountry的信息。有没有办法在运行时从Java / Dalvik虚拟机中找到它,或者我只是需要对其进行硬编码?

硬编码并不是一个真正的问题,因为我只有大约20种货币需要担心,但显然如果它可以派生,那就更容易了:)

1 个答案:

答案 0 :(得分:6)

您可以使用NumberFormat.setMaximumFractionDigitsNumberFormat.setMinimumFractionDigits来控制显示的小数位数。