2016-01-18 5 views
0

Я уже пробовал некоторые вещи, но безуспешно. Для этого нет простого десятичного формата?Формат валюты в индийском формате нумерации без символа в 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

+0

Я не понимаю, что вы хотите, можете ли вы изменить свой вопрос и добавить свой ожидаемый результат? –

+0

Является ли '10,00,000.00' ваш ожидаемый результат? – Simon

+0

@Simon да, выход должен быть 10,00,000.00. Но он также должен работать с большими и меньшими числами. – Greg

ответ

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); 
Смежные вопросы