在我的应用程序中,我编辑了文本框,其中用户输入应用程序用来运行计算的十进制值。区域独立字符串加倍
其他地区的某些用户在输入数字时会报告问题,例如输入值和出现的不同值。我试图通过获得来自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());
但显然仍是不工作的一些人。在斯洛文尼亚
一个用户报告说,它工作正常,如果
- 设置;语言&键盘:
- 选择语言:设置为英语(斯洛文尼亚)
- 触摸输入:仅设置为英语和任何语言(我的情况 斯洛文尼亚)
- 双语预测:OFF
- 文本预测:OFF
获取double值的正确方法是什么? 感谢
是因为有些国家使用逗号而不是点数来表示小数? –
我认为这与它有关。但是,当我使用上面的双字符串方法与“2,2”时,它返回一个值为2.2的double,所以我认为它工作。 – Matt
看看这是否有帮助http://stackoverflow.com/questions/4323599/best-way-to-parsedouble-with-comma-as-decimal-separator –