Почему true?

andrw

if (((n+k/100)==(k/n)))

почему эта ветка выдает 1, при k=10,n=3.

ведь 3+10/100=3,1

а 10/3=3,333333

если не ошибаюсь, то у с++ по умолчанию точность именно 6 знаков после запятой.

// k,n-int

2 ответа

andrw

Потому что если все операнды - целые числа, то и результат всегда - целое число. Возможная дробная часть при этом отсекается.


andrw

if ((((******)n+(******)k/100.0)==((******)k/(******)n)))

licensed under cc by-sa 3.0 with attribution.