Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将JTextField字符串转换为double?_Java_String_Double_Jtextfield - Fatal编程技术网

Java 如何将JTextField字符串转换为double?

Java 如何将JTextField字符串转换为double?,java,string,double,jtextfield,Java,String,Double,Jtextfield,我的程序适用于生日和年龄。我在尝试将JTextField字符串转换为双精度字符串时遇到问题。我使用了parse方法,但仍然收到一个错误。请帮忙 public class MyPaymentFrame extends JFrame implements ActionListener { JTextField txtAge; JTextField txtDate; public MyPaymentFrame() { Container mycnt

我的程序适用于生日和年龄。我在尝试将JTextField字符串转换为双精度字符串时遇到问题。我使用了parse方法,但仍然收到一个错误。请帮忙

public class MyPaymentFrame extends JFrame implements ActionListener {

    JTextField txtAge;
    JTextField txtDate;

        public MyPaymentFrame()  {
        Container mycnt = getContentPane();
        mycnt.setLayout(new FlowLayout());

        Color c = new Color(56, 100, 20);
        Font F = new Font("Arial", Font.ITALIC, 20);

        mycnt.add(new JLabel("Enter your Age"));
        txtAge = new JTextField(15);
        mycnt.add(txtAmount);


        mycnt.add(new JLabel("Enter birthdate"));
        txtDate = new JTextField(10);
        mycnt.add(txtDate);

    }
        if (e.getActionCommand().equals("Clear")) {
            txtAge.setText("");
            txtDate.setText("");
        }

        if (e.getActionCommand().equals("Calculate")) {
            // Converting String to Double
            double Amount = Double.parseDouble(txtMonth);

        }

    }
    public static void main(String[] args) {

        Theframe myframe = new Theframe();

    }

}
你可以试试:

    Double Amount = Double.valueOf(txtMonth);
根据文件:


此方法返回一个
Double
对象,该对象包含由参数
String

表示的双精度值。显然,txtmount是一个JTexfield,但Double.parseDouble方法接收一个字符串。检查方法的javadoc

尝试使用:

double Amount = Double.parseDouble(txtMonth.getText());
此外,如果文本无法转换为double,此方法将抛出NumberFormatException

 double Amount = Double.parseDouble(txtMonth.getText());

parseDouble()
返回原语
double
valueOf()
返回包装类
Double
的实例


在Java 5引入自动装箱之前,这是两者之间非常显著的区别。

您需要通过调用方法
getText
来获取对象的文本
txtmount
,如果输入无效,请验证输入或使用Try catch

例子:
您遇到了什么错误?您是否尝试打印
txtmount
以排除故障。。。?这应该是第一步……代码无法编译。
Double Amount = Double.valueOf(txtMonth.getText());
public static void main(String[] args) {
    double amount=0.0;
    try {
         amount = Double.parseDouble(txtMonth.getText());
    } catch (Exception e) {
        System.err.println("ups, this was not castable to double");
          amount=-10.0;
    }
    System.out.println("Here is the double: "+ amount);
}