Change DecimalFormat locale

BekaKK picture BekaKK · Apr 5, 2016 · Viewed 26.1k times · Source

I have custom DecimalFormat in Edittext's addTextChangedListener method, everything is working perfectly but when I change language (locale) my addTextChangedListener is not working.

double answer = inputDouble * counterToDouble;
DecimalFormat df = new DecimalFormat("##.########");
// df=(DecimalFormat)numberFormat;

df.setRoundingMode(RoundingMode.DOWN);
answer = Double.parseDouble(df.format(answer));

unicoinsAmmount.setText(String.valueOf(df.format(answer)));

I searched about my problem and found a NumberFormat solution:

NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.US);

but I don't know how I can use this code.

Answer

Joe Bloggs picture Joe Bloggs · Jun 6, 2018

You can also specify locale for DecimalFormat this way:

DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US);
DecimalFormat format = new DecimalFormat("##.########", symbols);