Java 如何将JTextField字符串转换为double?
我的程序适用于生日和年龄。我在尝试将JTextField字符串转换为双精度字符串时遇到问题。我使用了parse方法,但仍然收到一个错误。请帮忙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
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);
}