我输入了一个数字,但给我错误

时间:2019-04-16 17:30:09

标签: java

所以我有这些问题,它无法检测到jtextfield的值。有人可以帮助我吗?

private void ConvertActionPerformed(java.awt.event.ActionEvent evt) {                                        
    // TODO add your handling code here:
    double celsius = Integer.parseInt(cfield.getText());
    double fahren = Integer.parseInt(ffield.getText());
    if(celsius >= 0){
    total = (9/5) * celsius + 32;
    ffield.setText("" + total);
    }
    else if(fahren >= 0){
    total = (5/9) * fahren - 32;
    ffield.setText("" + total);
    }
    cfield.setEditable(false);
    ffield.setEditable(false);

}                                       

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:
    cfield.setText("");
    ffield.setText("");
    cfield.setEditable(true);
    ffield.setEditable(true);

}                 

成功完成(总时间:5秒)

这是我的代码。

results=cursor.fetchall()
my_list=[]
for result in results:
    my_list.append(result[0])

2 个答案:

答案 0 :(得分:1)

try {
    double celsius = Double.valueOf(cfield.getText());
    double fahren = Double.valueOf(ffield.getText());
    // do calculations

} catch (NumberFormatException ex) {
    // report the error with a logger
    // or fix the error
    // or escape out 
}

答案 1 :(得分:0)

当您尝试将字符串解析为数字时,问题就出在这里。

    double celsius = Integer.parseInt(cfield.getText());
    double fahren = Integer.parseInt(ffield.getText());

您没有检查文本字段中的文本是否可以解析为数字。因此,当采用空字符串进行解析时,将引发NumberFormatException。您应该使用异常处理来处理这种情况,或者在解析前者是正确选择之前手动检查。

try
{
    double celsius = Integer.parseInt(cfield.getText());
    double fahren = Integer.parseInt(ffield.getText());
}catch(NumberFormatException e)
{
    System.out.println(e.getMessage());
} 

始终尝试对可能引发异常的代码使用异常处理。