JTextField 输入到 Double
JTextField input to Double
我正在开发一个应用程序,它可以获取用户在文本字段中输入的快门速度。用户可以以分数“1/250”或整数的形式输入快门速度。从该输入我想将其转换为双精度类型的变量。
但是当我尝试输入“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);
您只需要使用从文本字段返回的字符串,并根据 / 字符将其分成两部分。然后你可以使用这两个数字并将它们相除,就像使用基础数学得到双倍数一样。
String str = userShutter.getText();
String[] arr = str.split("/");
double answer = Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]);
System.out.println(answer);
我正在开发一个应用程序,它可以获取用户在文本字段中输入的快门速度。用户可以以分数“1/250”或整数的形式输入快门速度。从该输入我想将其转换为双精度类型的变量。
但是当我尝试输入“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);
您只需要使用从文本字段返回的字符串,并根据 / 字符将其分成两部分。然后你可以使用这两个数字并将它们相除,就像使用基础数学得到双倍数一样。
String str = userShutter.getText();
String[] arr = str.split("/");
double answer = Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]);
System.out.println(answer);