我正在尝试像这样打印 INR 格式的货币:
NumberFormat fmt = NumberFormat.getCurrencyInstance();
fmt.setCurrency(Currency.getInstance("INR"));
fmt.format(30382.50);
显示 Rs30,382.50
,但在印度它写成 Rs。 30,382.50
(参见 http://www.flipkart.com/)
如何在不对 INR 进行硬编码的情况下解决?
最佳答案
这有点 hack,但在非常相似的情况下,我使用了类似的东西
NumberFormat format = NumberFormat.getCurrencyInstance(new Locale("en", "in"));
String currencySymbol = format.format(0.00).replace("0.00", "");
System.out.println(format.format(30382.50).replace(currencySymbol, currencySymbol + " "));
我必须处理的所有货币都涉及两位小数,所以我能够对所有货币执行 "0.00"
但是如果您打算使用日元之类的货币,则必须是调整。有一个 NumberFormat.getCurrency().getSymbol()
;但它返回 INR
而不是 Rs.
,因此不能用于获取货币符号。
关于java - 货币符号和金额之间需要空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6670337/