我的应用程序有许多数字用户输入字段,在进行下一个意图之前需要进行健全性检查。 我读取viewText字段,将它们转换为double然后进行(数值)测试,但奇怪的事情发生了,我发现虽然代码在我的HTC调试中运行,但如果我发布然后下载已发布的版本,它就会失败。我的代码是sumarised as;
String sFy;
double mFy=0;D
sFy=(txtFy.getText().toString());
mFy=Double.parseDouble(sFy);
如果sFy为null,则.parsedouble崩溃。如果我使用;
sFy=(txtFy.getText().toString());
mFy=getDouble(sFy);
private double getDouble(String string){
double temp=0.0;
try {
temp = Double.parseDouble(string.trim());
} catch(NumberFormatException nfe) {
System.out.println("getDouble, Could not parse " + nfe);
}
return temp;
}
即使sFy为空,它也能正常工作。
任何人都可以告诉我为什么,或建议'正确'的方法吗?
答案 0 :(得分:0)
也许是这样的:
String sFy;
double mFy=0;
sFy = txtFy.getText();
if ((sFy != ""){
mFy=Double.parseDouble(sFy);
}
或许我真的不明白你的问题......
答案 1 :(得分:0)
如果存在NumberFormatException,则getDouble返回0.0。 你看到调试器进入System.out.println(“getDouble,无法解析”+ nfe);