在java中没有符号的印度编号格式格式化货币

时间:2016-01-18 10:46:38

标签: java

我已经尝试了一些东西,但没有成功。这个没有简单的十进制格式吗?

第一个解决方案可以解决问题,但我不想拥有符号

Format format = com.ibm.icu.text.NumberFormat.getCurrencyInstance(new Locale("en", "in"));
        System.out.println(format.format(new BigDecimal("1000000")));

当分隔符后面有数字时,带有十进制格式的第二种解决方案会给我带来麻烦。

DecimalFormatSymbols symbols5 = new DecimalFormatSymbols();
symbols5.setDecimalSeparator('.');
symbols5.setGroupingSeparator(',');
NumberFormat goodNumberFormat5 = new DecimalFormat("##,##,##1", symbols5);
System.out.println("************");
System.out.println("10,00,000.00");
System.out.println("************");
System.out.println(goodNumberFormat5.format(new BigDecimal(1000000)));
System.out.println(goodNumberFormat5.format(new BigDecimal(1000000.00)));
System.out.println();

这个输出是:

? 10,00,000.00
************
10,00,000.00
************
1,00,00,001
1,00,00,001

我怎么能解决这个问题?

例外输出应为10,00,000.00

1 个答案:

答案 0 :(得分:2)

在RC的帮助下我发现了这个解决方案。

    Format format = com.ibm.icu.text.NumberFormat.getCurrencyInstance(new Locale("en", "in"));
    String str = format.format(1000000);
    String strWithoutSymbol = "";
    strWithoutSymbol = str.substring(1,str.length());
    System.out.println(strWithoutSymbol);