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同じforから読み取っている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 に答える