I am interested in gaining access to formatting for locales. I am currently in need of currency formatting for Indonesia. When I format using NumberFormat.getCurrencyInstance().format(new BigDecimal(0)); I get "IDR 0.00" whereas I would expect to get " Rp0". For some reason the ISO currency code is used for the symbol and the maximun fraction digits seems to be incorrect. Is there a way to make these changes centrally e.g. to Locale rather than having to find each instance of getCurrencyInstance() ?
Which version of JDK are you using? If you are using prior versions than JDK6, you might want to upgrade it as Indonesian locale is supported since JDK6. I briefly tested it (I explicitly specified Locale("in", "ID") to getCurrencyInstance()) and it displayed "Rp0.00". Fraction digits are displayed because it is based on Unicode's CLDR data which specifies that.