Используя десятичные числа

NSDecimalNumber неизменный подкласс NSNumber это обеспечивает объектно-ориентированную обертку для того, чтобы сделать основу 10 арифметик. Экземпляр может представлять любое число, которое может быть выражено как mantissa x 10 exponent где мантисса является десятичным целым числом до 38 цифр долго, и экспонента является целым числом между-128 и 127.

В ходе выполнения арифметики метод может произвести ошибки в вычислениях, такие как деление на нуль. Это может также встретить обстоятельства, где это имеет выбор способов округлить число. Путем действия метода в таких случаях вызывают его «поведением».

Поведение установлено методами в NSDecimalNumberBehaviors протокол. Каждый NSDecimalNumber параметр вызывают behavior требует объекта, соответствующего этому протоколу. Для больше на способах поведения, посмотрите спецификации для NSDecimalNumberBehaviors протокол и NSDecimalNumberHandler класс. Также посмотрите defaultBehavior описание метода.

C интерфейс к десятичным числам

Можно получить доступ к арифметике и округлению методов NSDecimalNumber через группу функций C:

NSDecimalAddДобавляют два десятичных значения.
NSDecimalCompactУплотняет десятичную структуру для эффективности.
NSDecimalCompareСравнивает два десятичных значения.
NSDecimalCopyКопирует значение десятичного числа.
NSDecimalDivideДелит одно десятичное значение на другого.
NSDecimalIsNotANumberВозвращает булевскую переменную, указывающую, содержит ли данное десятичное число верный номер.
NSDecimalMultiplyУмножает два десятичных числа вместе.
NSDecimalMultiplyByPowerOf10Умножает десятичное число на указанное питание 10.
NSDecimalNormalizeНормализует внутренний формат двух десятичных чисел для упрощения более поздних операций.
NSDecimalPowerПовышает десятичное значение до указанного питания.
NSDecimalRoundОкругляет десятичное значение.
NSDecimalStringВозвращает строковое представление десятичного значения.
NSDecimalSubtractВычитает одно десятичное значение от другого.

Вы могли бы рассмотреть интерфейс C, если Вы не должны обрабатывать десятичные числа как объекты — т.е. если Вы не должны хранить их в объектно-ориентированном наборе как экземпляр NSArray или NSDictionary. Вы могли бы также рассмотреть интерфейс C при необходимости в максимальной производительности. Интерфейс C быстрее и использует меньше памяти, чем NSDecimalNumber класс.

При необходимости в переменчивости можно объединить два интерфейса. Используйте функции от интерфейса C и преобразуйте их результаты в экземпляры NSDecimalNumber.