Привет, пишу калькулятор и у меня такая проблема. Когда пишу -2 минус 2, то должен вывести -4, но вылетает почему-то ошибка. Никак не могу понять по чему, пробывал и убирать минус, но всё равно.
Вот макет
Главные цифры большие это TextView в mainactivity.java он записан в переменную display
При клике на кнопку равно вызывается метод
// do result of two numbers
public void onEqual (View v) {
display.setText(makeResult()); // set TextView result of computation
}
И сам метод makeResult, который ищет в TextView два числа и делает нужную операцию с ними(+, -, /, и др)
Так-же есть переменная operator она статична и хранит текущий оператор, который ввёл юзер, чтобы можно было потом сделать нужное вычисление двух чисел, крч вот код метода
// make result of two numbers
private String makeResult () {
double one; // one number
double two; // two number
double result; // result of two numbers
String dis = display.getText().toString(); // take text from TextView for more comfortable(manipulation)
one = Double.parseDouble(dis.substring(0, dis.indexOf(operator) - 1)); // берём первое число от начала строки до оператора(оператор не берём)
two = Double.parseDouble(dis.substring(dis.indexOf(operator) + 2, dis.length())); // берём второе число после оператора и до конца строки
switch (operator) {
case "+":
result = one + two;
break;
case "-":
result = one - two;
break;
case "/":
result = one / two;
break;
case "x":
result = one * two;
break;
default:
result = 0;
}
operator = "";
return new DecimalFormat("#.##########").format(result); // do format of result ( 5.0 -> 5 )
}
Так-же каждый оператор(+, -, /, x) между числами имеет 1 пробел с каждой стороны, для большей красоты и чтобы было проще вытянуть 2 числа и пр. но это уже не важно.
Дак почему вылетает ошибка, почему он не хочет хавать число c отрицательным знаком и делать с ним минус со вторым числом? (-2 - 2) вернёт вылет приложения