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