我正在开发一种应用程序,该应用程序具有用户输入到文本字段中的快门速度。用户可以输入分数“ 1/250”或整数形式的快门速度。从该输入,我想将其转换为double类型的变量。
但是当我尝试输入“ 1/250”时,我遇到很多错误,第一个是:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException:
For input string: "1/250"
我知道它与输入中的'/'有关,但是我将如何将小数转换为双精度?
JTextField userShutter = new JTextField("", 10);
userShutter.setBounds(60, 180, 50, 25);
userShutter.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
double shutter = Double.parseDouble(userShutter.getText());
baseShutterSpeed = shutter;
}
});
// Calculate shutter speed
calculator(stopValue, baseShutterSpeed);
答案 0 :(得分:1)
您只需要使用从文本字段返回的String并将其基于/字符分为两部分。然后,您可以使用这两个数字对它们进行除法,就像使用基本数学运算来获得双精度数一样。
String str = userShutter.getText();
String[] arr = str.split("/");
double answer = Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]);
System.out.println(answer);