Какой тип objective-c подходит для обработки денег?

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

Ответы

Ответ 1

Существует два решения:

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

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

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