Мне часто нужно заполнить CGFloat до int для вычисления индекса массива.
Проблема, которую я постоянно вижу с помощью floorf(theCGFloat) или ceilf(theCGFloat), заключается в том, что могут быть проблемы с неточностями с плавающей запятой.
Так что, если мой CGFloat 2.0f, но внутри он представлен как 1.999999999999f или что-то в этом роде. Я делаю floorf и получаю 1.0f, который снова является поплавком. И все же я должен бросить этого зверя в int, который может ввести еще одну проблему.
Есть ли наилучшая практика для того, как настил или поместить float в int так, чтобы что-то вроде 2.0 никогда не попадалось бы наподобие 1, а что-то вроде 2.0 никогда не будет случайно закрыто 2?