1

我已经使用 JFrame 用 java 制作了一个计算器,除了除法之外一切正常。这是计算答案并显示它的代码位:

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 - 任何帮助将不胜感激。

4

2 回答 2

5

您正在阅读相同JTextField的内容,num2因此值将相同。任何double除以自身将产生1.0

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

你可能想要:

num2 = Double.parseDouble(result2.getText());
于 2012-12-22T17:18:26.023 回答
4
        num1 = Double.parseDouble(resultl.getText());
        num2 = Double.parseDouble(resultl.getText());

num1 和 num2 是相同的值 => 除法提供 1.0

于 2012-12-22T17:19:13.993 回答