Showing posts with label Currency. Show all posts
Showing posts with label Currency. Show all posts

Monday, 25 April 2016

Currency Conversion or Formatting As per your needs in Java


How to convert Java String as per Currency Standards of ISO 4217  ?

Solution:

I spent lot of time to get this kind of logic for currencies in java.  I think it will be helpful if any one need to play with currency formats in java.
You can enable grouping and symbols if needed .

/***
*  Used to convert any amount to any currency.
* Ex: 12.3446 to 12.34 for USD
* Ex 10001.12 to 10001 for JPY
*
*/

// you can get currency using java.util.Currency

String convertToCurrency(String actual, Currency curr)
    {
       
        BigDecimal bd  = new BigDecimal(actual);
        NumberFormat nf  = NumberFormat.getCurrencyInstance();
        nf.setCurrency(curr);
        nf.setGroupingUsed(false);
        nf.setMaximumFractionDigits(curr.getDefaultFractionDigits());
        nf.setMinimumFractionDigits(curr.getDefaultFractionDigits());
        DecimalFormat formatter = (DecimalFormat) nf;
        DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
        symbols.setCurrencySymbol(""); // Don't use null.
        formatter.setDecimalFormatSymbols(symbols);
        return formatter.format(bd);
    }