Задать вопрос
@Axretit

Почему результат вычисления целочисленный?

621e353540bf2658590792.png
Есть целочисленные переменные и есть x - вещественный. x есть конечный результат.
Я заметил, если расписать все действия отдельно, в отдельных строках, то в конце x, какой бы он ни был, остается целочисленным. Например: x = 1/13; x = 0;

s = pow((r - q),2);
a = a * s;
p = p + 12;
x = a / p;

(все переменный типа int, кроме x, x типа double)

А если все действия писать в одну строку, то x остается вещественным и ответ получается верный.

x = (a * pow((r - q), 2)) / (p + 12);
(все переменный типа int, кроме x, x типа double)
В чем закономерность?
  • Вопрос задан
  • 232 просмотра
Подписаться 1 Простой Комментировать
Ответ пользователя rPman К ответам на вопрос (3)
@rPman
pow возвращает тип double
в первом случае ты его преобразуешь в int и все последующие операции идут с целочисленными типами, в т.ч. и /,
а в записи в строку он левую часть выражения до / делает типом double и значит деление тоже вызывается для типа double
Ответ написан
Комментировать