JTextField输入为Double

时间:2018-11-12 22:21:45

标签: java swing jtextfield

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

1 个答案:

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