java.lang.NumberFormatException:无效的double:“”

时间:2014-06-30 23:40:43

标签: java parsing double numberformatexception

当我尝试运行我的Android应用程序时,我收到一条错误消息:java.lang.NumberFormatException:无效的double:""。这是我的代码:

public class MainActivity extends Activity {

double score;
EditText gpa;
EditText sat;
EditText act;
Button calc;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    gpa = (EditText) findViewById(R.id.gpa);
    String gpaString = gpa.getText().toString();
    final double gpaDouble = Double.parseDouble(gpaString);

    sat = (EditText) findViewById(R.id.sat);
    String satString = sat.getText().toString();
    final int satInt = Integer.parseInt(satString);

    act = (EditText) findViewById(R.id.act);
    String actString = act.getText().toString();
    final int actInt = Integer.parseInt(actString);


    calc = (Button) findViewById(R.id.calc);

    calc.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            if(actInt/36>satInt/2400){
                score = (0.6*gpaDouble*25)+(0.4*(actInt/36)*100);
            }else{
                score = (0.6*gpaDouble*25)+(0.4*(satInt/2400)*100);
            }


        }
    });
}


}

我基本上想从三个EditTexts中获取数字,将其中一个变为双精度,将另外两个变为整数。然后我会使用这些变量来设置另一个双变量的值。在运行应用程序之前,我没有收到错误。我觉得当EditText字段为空时,它将无法正确解析,但我不确定如何解决这个问题。问题是什么?

1 个答案:

答案 0 :(得分:1)

Invalid double: "".

您正在解析onCreate()值而不添加任何默认值,因此异常

final double gpaDouble = Double.parseDouble(gpaString);

因为""(空String不是Double