更改十进制格式区域设置

2022-08-31 20:01:01

我在Edittext的addTextChangedListener方法中进行了自定义,一切都很完美,但是当我更改语言(区域设置)时,我的addTextChangedListener不起作用。DecimalFormat

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

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


答案 1

您可以通过以下方式指定区域设置:DecimalFormat

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

答案 2

您可以尝试先转换为,然后将其转换为NumberFormatDecimalFormat

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

推荐