Ошибка в setText

Рейтинг: 3Ответов: 2Опубликовано: 09.12.2014

Если писать так, то нет ошибки

mOtvetTextView.setText(2+2*4 + "ответ");

Если писать так, то ошибка "The operator - is undefined for the argument type(s) String, double"

mOtvetTextView.setText("ответ" + 2+2*4);

А вообще хотелось бы написать так:

mOtvetTextView.setText("пример" + 2+2*4 + "равен");

Ответы

▲ 2Принят

Я бы не делал так. Я бы создал переменную, в которую записывал результат вычисления. Потом уже формировал вывод. Я считаю, что так лучше и красивее. Проще назвать нельзя, так как на одну строчку больше кода выходит))))

Integer otvet = 2+2*4;
mOtvetTextView.setText("Пример " + otvet + " равен.");

// Лично мне нравится выносить отдельно всевозможные вычисления, считаю, что так удобнее после редактировать код - нагляднее он смотрится. // Но это дело каждого, поэтому решайте сами, код я Вам предложил.

Обновление

Чтобы работать с дробной частью, нужно применить double тип переменной. Код я предлагаю следующий:

// var = 0.66(6) - 0.66 и 6 в периоде, то есть длинный хвост из "6".
double var = 2+2*4/15;  
// задаем формат для var и выводим в textView. 0.66 в textView.
mOtvetTextView.setText(new DecimalFormat("##.##").format(var)); 
▲ 7

Странно, у меня все 3 варианта отработали нормально.

В любом случае, пишите так, чтоб наверняка:

mOtvetTextView.setText("пример" + (2+2*4) + "равен");