更改DecimalFormat语言环境


问题内容

DecimalFormat在Edittext的addTextChangedListener方法中已自定义,一切正常,但是当我更改语言(语言环境)时,我的addTextChangedListener无法正常工作。

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)));

我搜索了我的问题并找到了NumberFormat解决方案:

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

但我不知道如何使用此代码。


问题答案:

您可以尝试先转换为NumberFormat,然后将其投射到DecimalFormat

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