Числа с плавающей точкой на самом деле не работают таким образом. Каждое число с плавающей запятой описывает значение, которое максимально приближено к числу, которое вы пытаетесь представить, учитывая возможное разрешение с типом данных, который вы используете (т. Е. Double может описывать ваше значение более точно, чем число с плавающей запятой).
Как подсказывает @psoft, лучше всего позволить компьютеру позаботиться об этих деталях и беспокоиться об этом только тогда, когда вам нужно отобразить значение.
Если вы действительно не хотите представлять число с плавающей запятой, то вы можете рассмотреть возможность использования NSDecimal или его обертки объектов NSDecimalNumber. Они позволяют более широко представлять конкретные значения, не прибегая к деталям представления чисел с плавающей запятой. Однако я предполагаю, что вам не нужно этого делать. Просто используйте float (или double) и не беспокойтесь о точности, которую он использует внутри.