Расчеты с использованием только целые числа приводит к конечный результат будет целым числом, даже если в дальнейшем вы присвоить его значение с плавающей запятой, как в два раза. Целочисленное деление работает, подсчитывая, сколько раз знаменатель может полностью вписываться в числитель.
Чтобы решить, вы должны гипс по меньшей мере, один из 2-х операндов в подразделении, так что деление выполняются уже в двойной точности (число внутри арифметические операции автоматически отливают к типу, который позволяет с большей точностью, чем его операнды, если хотя бы один из операндов имеет ту точность):
average = (double)likes/total;
или
average = likes/(double) total;
Обратите внимание, что это отличается от average = (double) (likes/total);
, который произведет результат после того, как он уже округлен.
Включите одну из переменных в виде двойника, иначе она округляется, поскольку целые округлые. – AntonH
Вы имеете в виду изменение общего числа или любит удваивать? если это так, я пробовал это, и он все равно возвращает 4.0 –
'average = (double) нравится/total;' – AntonH