Есть два решения:
- Используйте
int
и всегда отслеживайте денежные значения в центах (или наименьшее возможное деление любой валюты, которую вы используете). Используйте только целочисленные вычисления.
- Используйте
NSDecimalNumber
, что делает точную десятичную арифметику.
Решение № 1 требует от вас конвертации между центами и долларами всякий раз, когда вы вводите или выводите денежные значения, тогда как решение № 2 может быть сложнее в коде (например, вы должны написать что-то вроде [num1 decimalNumberByAdding:num2]
вместо num1 + num2
добавить два числа).
Я бы порекомендовал решение № 1, но используйте тот, который, по вашему мнению, подойдет лучше.