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);