Ниже приведено хорошее решение на Java!
NumberFormat fmt = NumberFormat.getCurrencyInstance();
System.out.println(fmt.format(n));
или для более надежного способа получить локаль определенного места, а затем использовать как показано ниже:
int n=9999999;
Locale locale = new Locale("en", "US");
NumberFormat fmt = NumberFormat.getCurrencyInstance(locale);
System.out.println(fmt.format(n));
US Locale OUTPUT: $ 9,999,999.00
Выход немецкого языка
Locale locale = new Locale("de", "DE");
OUTPUT: 9.999.999,00 €
Индийский локальный выход
Locale locale = new Locale("de", "DE");
OUTPUT: Rs. 9,999,999.00
Выход в Эстонский локаль
Locale locale = new Locale("et", "EE");
OUTPUT: 9 999 999 €
Как вы можете видеть на разных выходах, вам не нужно беспокоиться о разделитель представляет собой запятую или точку или даже пространство, вы можете получить номер, отформатированный в соответствии со стандартами i18n