当前位置 : 主页 > 手机开发 > android >

android – Locale独立的String to double

来源:互联网 收集:自由互联 发布时间:2021-06-11
在我的应用程序中,我编辑了文本框,用户输入的小数值是应用程序用来运行计算的. 其他区域设置中的某些用户在输入数字时会报告问题,例如输入值和显示不同的值.我试图通过使用此方
在我的应用程序中,我编辑了文本框,用户输入的小数值是应用程序用来运行计算的.

其他区域设置中的某些用户在输入数字时会报告问题,例如输入值和显示不同的值.我试图通过使用此方法从editText获取值来解决此问题:

public double stringToDouble(String s){
        if (nf == null){
            nf = NumberFormat.getInstance(Locale.US);
        }
        try {
            return nf.parse(s).doubleValue();
        } catch (ParseException e) {
            e.printStackTrace();
            return 0.0;
        }
    }

val = stringToDouble(et.getText().toString());

但显然这仍然不适合某些人.

斯洛文尼亚的一位用户报告说,如果可行的话

  • settings; Language & keyboard :
  • Select language : set to English(Slovenia)
  • Touch input: set only to English and whatever language(my case
    Slovenia)
  • Bilingual prediction: OFF
  • Text prediction: OFF

获取double值的正确方法是什么?
谢谢

从它的外观来看,正确的方法是:

public double stringToDouble(String s){
        if (nf == null){
            nf = NumberFormat.getInstance(Locale.getDefault());
        }
        try {
            return nf.parse(s).doubleValue();
        } catch (ParseException e) {
            e.printStackTrace();
            return 0.0;
        }
    }

到目前为止,似乎对我有用.

网友评论