JTextField input to Double



我正在开发一个应用程序,该应用程序可以获得用户在文本字段中输入的快门速度。用户可以以分数"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);

您只需要使用从文本字段返回的字符串,并根据/字符将其拆分为两部分。然后你可以用这两个数字,像用基本数学一样把它们除以,得到二重。

String str = userShutter.getText();
String[] arr = str.split("/");
double answer = Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]);
System.out.println(answer);

最新更新