【问题标题】:java.lang.NumberFormatException: Invalid double: "" [duplicate]java.lang.NumberFormatException:无效的双:“”[重复]
【发布时间】:2014-07-01 07:42:56
【问题描述】:

当我尝试运行我的 Android 应用程序时,我收到一条错误消息:java.lang.NumberFormatException: Invalid 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);
            }


        }
    });
}


}

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

【问题讨论】:

    标签: java parsing double numberformatexception


    【解决方案1】:
    Invalid double: "".
    

    您正在解析 onCreate() 值而没有放置任何默认值,因此异常

    final double gpaDouble = Double.parseDouble(gpaString);
    

    因为""(空String不是Double

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-11
      • 2017-04-21
      • 1970-01-01
      • 2016-10-05
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多