从java jtextfield读取双精度

从java jtextfield读取双精度,java,swing,double,jtextfield,Java,Swing,Double,Jtextfield,这似乎是一个非常简单的问题,但我无法从jtextfield中读取双精度文本。我可以使用getText()轻松地读取字符串;但是双倍的运气不好 我的目标是在double中读取并对其执行减法,然后在按下提交按钮后将其重新显示给用户…Action listener工作正常,为了使其看起来更简单,我没有添加它…如果有帮助,我可以添加它 if (e.getSource() == submit) { cashRecieved = CashNeeded.

这似乎是一个非常简单的问题,但我无法从jtextfield中读取双精度文本。我可以使用getText()轻松地读取字符串;但是双倍的运气不好

我的目标是在double中读取并对其执行减法,然后在按下提交按钮后将其重新显示给用户…Action listener工作正常,为了使其看起来更简单,我没有添加它…如果有帮助,我可以添加它

if (e.getSource() == submit)
            {
                cashRecieved = CashNeeded.getText();

            }
CashReceived的类型是double,因此eclipse抱怨说它无法将字符串存储到double

double d = Double.valueOf(CashNeeded.getText());
您不应该将变量名大写(我假设CashNeeded就是其中之一)


您不应该将变量名大写(我假设cashRequired是一个)。

您需要将字符串转换为双精度。为此,请使用parseDouble方法:

cashRecieved = Double.parseDouble(CashNeeded.getText());
它返回类型double(primitive),而valueOf返回类double的类型

编辑:

正如Ingo所提到的,当您试图将无效字符串(例如:“Hello123”)解析为数字时,您应该确保注意发生的NumberFormatException

try {
    cashRecieved = Double.parseDouble(CashNeeded.getText());
} catch (NumberFormatException e) {
    e.printStackTrace();
    // handle the error
}

您需要将字符串转换为双精度。为此,请使用parseDouble方法:

cashRecieved = Double.parseDouble(CashNeeded.getText());
它返回类型double(primitive),而valueOf返回类double的类型

编辑:

正如Ingo所提到的,当您试图将无效字符串(例如:“Hello123”)解析为数字时,您应该确保注意发生的NumberFormatException

try {
    cashRecieved = Double.parseDouble(CashNeeded.getText());
} catch (NumberFormatException e) {
    e.printStackTrace();
    // handle the error
}

另外,注意NumberFormatException还有,注意NumberFormatException还有,注意NumberFormatException还有,注意NumberFormatException您可以尝试使用JSpinner或JFormattedTextField您可以尝试使用JSpinner或JFormattedTextField