Decimal Format In Android

Yesterday , I found a bug in the app that I working on. If it’s a indonesia language in phone , my app can’t work properly. Because Android didn’t return the decimal if we are using indonesia language setting.

Example :

String amt = String.format("%.2f",20.05);
Log.i("test","Amount is " + amt); //if indo language , it will return 20,00 instead of 20.05

I tested with DecimalFormat but same result.

DecimalFormat f = new DecimalFormat("##.00");
String atm = f.format(d); 
Log.i("test","Amount is " + amt); //if indo language , it will return 20,00 instead of 20.05

So, I am using like following for now.

String amt = String.format("%.2f",20.05);

if(atm.indexOf(",") != -1)
{
    atm = atm.replace(",", ".");
}

Log.i("test","Amount is " + amt);
comments powered byDisqus