我正在尝试制作一个用于计算CGPA的应用。我已经使用数字数据保存为Double变量类型。

执行后,它显示


  java.lang.NumberFormatException:无效的double:“”
   我的logcat错误。


它在这段代码上显示了错误:

 total_credit = Double.parseDouble(ch1.getText().toString()) +
        Double.parseDouble(ch2.getText().toString()) +
        Double.parseDouble(ch3.getText().toString()) +
        Double.parseDouble(ch4.getText().toString()) +
        Double.parseDouble(ch5.getText().toString()) +
        Double.parseDouble(ch6.getText().toString());


我试图将异常处理为:

try {
    total_credit = Double.parseDouble(...);
} catch (NumberFormatException e) {
    total_credit = 0.0;
}


现在执行时,同一行发生了错误,错误是:


  ComponentInfo {com.example.aashish.cgpacalculator / com.example.aashish.cgpacalculator.calculator_page}:java.lang.NumberFormatException:无效的双精度字符:“”

最佳答案

您收到一个java.lang.NumberFormatException,并且如消息所提示,原因是您正在尝试解析或转换或对不是(在您的情况下为空字符串)进行双精度

怎么解决?

您可以始终在执行任何转换之前验证小部件是否持有空字符串

只是通过做

if (myString.isEmpty()) {

}

09-11 20:31