货币符号和金额之间需要空格

2022-09-02 21:50:47

我正在尝试像这样打印INR格式的货币:

NumberFormat fmt = NumberFormat.getCurrencyInstance();
fmt.setCurrency(Currency.getInstance("INR"));
fmt.format(30382.50);

显示,但在印度,它写成(见 http://www.flipkart.com/)如何在不硬编码INR的情况下解决?Rs30,382.50Rs. 30,382.50


答案 1

这有点像黑客,但在非常相似的情况下,我使用了这样的东西

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 + " "));

我必须处理的所有货币都涉及两个小数位,所以我能够为所有货币做,但如果你打算使用像日元这样的东西,这必须进行调整。有一个 ;但它返回 for,因此不能用于获取货币符号。"0.00"NumberFormat.getCurrency().getSymbol()INRRs.


答案 2

看看这是否有效:

DecimalFormat fmt = (DecimalFormat) NumberFormat.getInstance();
fmt.setGroupingUsed(true);
fmt.setPositivePrefix("Rs. ");
fmt.setNegativePrefix("Rs. -");
fmt.setMinimumFractionDigits(2);
fmt.setMaximumFractionDigits(2);
fmt.format(30382.50);

编辑:修复了第一行。


推荐