Locale独立String要加倍

时间:2011-09-19 22:21:05

标签: android string parsing double

在我的应用程序中,我编辑了文本框,用户输入了应用程序用来运行计算的小数值。

其他区域设置中的某些用户在输入数字时会报告问题,例如输入值和显示不同的值。我试图通过使用此方法从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());

但显然这对某些人来说仍然不起作用。

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

,它可以正常工作
  
      
  • 设置;语言与键盘:
  •   
  • 选择语言:设为英语(斯洛文尼亚)
  •   
  • 触摸输入:只设置为英语和任何语言(我的情况   斯洛文尼亚)
  •   
  • 双语预测:关闭
  •   
  • 文字预测:关闭
  •   

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

1 个答案:

答案 0 :(得分:7)

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

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

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