Search code examples
javaandroidbigdecimaldecimalformat

Change DecimalFormat locale


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.


Solution

  • You may try by first converting to NumberFormat and then Cast it to DecimalFormat

    Integer vc = 3210000;
    NumberFormat nf = NumberFormat.getNumberInstance(Locale.US);
    DecimalFormat formatter = (DecimalFormat) nf;
    formatter.applyPattern("#,###,###");
    String fString = formatter.format(vc);
    return convertNumbersToEnglish(fString);