Android: Делението и изваждането винаги са равни на 1,0

Правя прост калкулатор, но когато се опитвам да разделя, винаги получавам 1,0, а когато изваждам, винаги получавам нула. Събирането и умножението работят добре.

Четох подобни въпроси като: Защо целите числа кодът на разделението дава грешен отговор? Делене две цели числа в Java ми дават 0 или 100? Деление в Java винаги води до нула (0)?

и много други...

Ето част от моя код:

 if (minu) {
    number1 = Double.valueOf(display1.getText().toString());
    number2 = Double.valueOf(display1.getText().toString());

    display1.setText("");
    display2.setText("");
    displaySymbol.setText("");

    answer = number1 - number2;

    display1.setText(Double.toString(answer));
 }

и разделението:

if (divid) {
    number1 = Double.valueOf(display1.getText().toString());
    number2 = Double.valueOf(display1.getText().toString());

    display1.setText("");
    display2.setText("");
    displaySymbol.setText("");

    answer = number2  / number1;

    display1.setText(Double.toString(answer));
}

Моля помогнете!


person Eklassen    schedule 04.02.2016    source източник


Отговори (1)


Вие четете стойността от display1 два пъти, забравихте да промените четенето на number2 на display2.


Замени:

number2 = Double.valueOf(display1.getText().toString());

с

number2 = Double.valueOf(display2.getText().toString());

Вашата функция в крайна сметка ще бъде:

if(minu){
    number1 = Double.valueOf(display1.getText().toString());
    number2 = Double.valueOf(display2.getText().toString());

    display1.setText("");
    display2.setText("");
    displaySymbol.setText("");

    answer = number1 - number2;

    display1.setText(Double.toString(answer));
}
person Evin1_    schedule 04.02.2016