更改 DecimalFormat 语言环境

新手上路,请多包涵

我在 Edittext 的 addTextChangedListener 方法中有自定义 DecimalFormat ,一切正常,但是当我更改语言(语言环境)时,我的 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);

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

原文由 BekaKK 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 720
2 个回答

您可以尝试先转换为 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);

原文由 Faisal Naseer 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以通过以下方式为 DecimalFormat 指定语言环境:

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

原文由 Joe Bloggs 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题