Не считается выражение 3 класса школы в Java
Почему в третьей строчке Тост выводит всегда значение равное нулю (т.е percentCorrect имеет значение 0 )???
mCountCorrect и mCountAnswear - это int переменные, например 2 и 3 (в отладчике смотрел - они приходят нормально), но на шаге вывода тоста percentCorrect всегда 0.
Пробовал просто подставить во вторую строку int percentCorrect = 3*100; - так показывает нормально. Почему?
if (mCountAnswear==mQuestionsBank.length){
int percentCorrect = (mCountCorrect/mCountAnswear)*100;
Toast.makeText(this, "Результат - " +percentCorrect +" % правильных ответов",Toast.LENGTH_SHORT).show();
mCountCorrect=0;
mCountAnswear=0;
}
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Целочисленное деление не имеет дробей, поэтому например 2 / 4 = 0.5 (это не целое число!) который усекается до целого числа 0. Можно попробовать считать так:
int x = a * 100 / b;
или приводить числа к double/float. Жуткий вариант:
int x = (int) (((double) a / (double) b) * 100);