Java - Калькулятор в JFrame - Разделение не работает?

Я сделал калькулятор с java с помощью JFrame, и все работает, кроме деления. Вот кусок кода, который вычисляет ответ и отображает его:

public void actionPerformed(ActionEvent e) {
        try {
            num1 = Double.parseDouble(resultl.getText());
            num2 = Double.parseDouble(resultl.getText());
            if (oper.equals("+")) {
                answer = num1 + num2;
                resultm.setText("" + answer);
                resultl.setText("");
                resultr.setText("");
                oper = "";
                currentNuml = "";
                currentNumr = "";
            } else if (oper.equals("-")) {
                answer = num1 - num2;
                resultm.setText("" + answer);
                resultl.setText("");
                resultr.setText("");
                oper = "";
                currentNuml = "";
                currentNumr = "";   
            } else if (oper.equals("*")) {
                answer = num1 * num2;
                resultm.setText("" + answer);
                resultl.setText("");
                resultr.setText("");
                oper = "";
                currentNuml = "";
                currentNumr = "";
            } else if (oper.equals("/")) {
                answer = num1 / num2;
                resultm.setText("" + answer);
                resultl.setText("");
                resultr.setText("");
                oper = "";
                currentNuml = "";
                currentNumr = "";
            }
            } catch (NumberFormatException ex) {
                resultl.setText("Unexpected Error, try again.");
        }
    }

Я вставил все, что генерирует ответ для сравнения, но на самом деле проблема заключается в бите деления. Если я делаю что-либо, связанное с делением, он ВСЕГДА просто говорит, что ответ равен 1,0 - любая помощь будет оценена по достоинству.


person Dan299    schedule 22.12.2012    source источник


Ответы (2)


Вы читаете из одного и того же JTextField для num2, поэтому значения будут одинаковыми. Любое double, разделенное само на себя, даст 1.0.

num2 = Double.parseDouble(resultl.getText());

Вы, вероятно, хотите:

num2 = Double.parseDouble(result2.getText());
person Reimeus    schedule 22.12.2012
comment
Спасибо, как всегда досадная опечатка :( - person Dan299; 22.12.2012

        num1 = Double.parseDouble(resultl.getText());
        num2 = Double.parseDouble(resultl.getText());

num1 и num2 имеют одно и то же значение => деление дает 1,0

person MrSmith42    schedule 22.12.2012