Какой тип цели c подходит для обработки денег? - PullRequest
14 голосов
/ 14 июня 2011

Какой тип задачи c подходит для обращения с деньгами? Мне нужно что-то, что совместимо с Core Data.

1 Ответ

16 голосов
/ 14 июня 2011

Есть два решения:

  • Используйте int и всегда отслеживайте денежные значения в центах (или наименьшее возможное деление любой валюты, которую вы используете). Используйте только целочисленные вычисления.
  • Используйте NSDecimalNumber, что делает точную десятичную арифметику.

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

Я бы порекомендовал решение № 1, но используйте тот, который, по вашему мнению, подойдет лучше.

...