读取ViewText转换为double

时间:2011-09-07 19:16:09

标签: android string double

我的应用程序有许多数字用户输入字段,在进行下一个意图之前需要进行健全性检查。 我读取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为空,它也能正常工作。

任何人都可以告诉我为什么,或建议'正确'的方法吗?

2 个答案:

答案 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);