Простая математика в Objective-C дает неожиданные результаты - PullRequest
0 голосов
/ 04 апреля 2010

Я делаю следующее в Objective-C и ожидаю 180 как вывод, но я получаю 150. Кто-нибудь может объяснить, что я делаю неправильно?

(360 / 100) * 50

1 Ответ

14 голосов
/ 04 апреля 2010

Вы (случайно) используете целочисленное деление . 360 / 100 возвращает 3, тогда 3 * 50, конечно, 150. Чтобы получить результат с плавающей запятой, попробуйте сначала преобразовать 360 или 100 в число с плавающей точкой, или просто используйте литерал с плавающей точкой - т.е.

Или, как указал @KennyTM в комментарии, вы можете изменить порядок операторов, например 360 * 50 / 100 - это особенно полезно, если число с плавающей запятой неприемлемо по любой причине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...