JTextField для ввода в Double - PullRequest
       13

JTextField для ввода в Double

0 голосов
/ 13 ноября 2018

Я работаю над приложением, которое получает выдержку, которую пользователь вводит в текстовое поле.Пользователь может ввести выдержку в виде дроби «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 голосов
/ 13 ноября 2018

Вам просто нужно использовать строку, которую вы возвращаете из текстового поля, и разбить ее на две части на основе символа /.Затем вы можете использовать эти два числа и разделить их, как если бы вы использовали основную математику, чтобы получить двойное число.

String str = userShutter.getText();
String[] arr = str.split("/");

double answer = Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]);
System.out.println(answer);
...