Objective-C имеет несколько различных структур для использования в вычислениях.Из его корней C происходят примитивные числа int
s, float
s, double
s и т. Д., С которыми вы можете напрямую выполнять арифметические операции (+
, -
, *
, /
, так далее.).Это то, что вы хотите использовать.
На более высоком рычаге Objective-C также имеет NSNumber
объекты, которые являются простыми обертками для примитивных типов, перечисленных выше.Они используются в Objective-C, где необходимо хранить примитивы (часто в других объектах, таких как массивы и словари, которые не принимают значения примитивов напрямую).Поскольку NSNumber
s являются объектами, вы не можете выполнять с ними прямые арифметические операции, вы должны сначала извлечь их примитивные значения (например, используя intValue
, чтобы получить целочисленное значение, или doubleValue
, чтобы получить двойноеточность числа с плавающей точкой).Поскольку неясно, что представляют собой переменные в вашем вопросе, я не собираюсь рисковать предположить, что именно вы пытаетесь сделать (я не хочу вводить вас в заблуждение), но вы можете узнать больше о NSNumber
в NSNumber
Ссылка на класс .
Наконец, как упоминал Ричард, есть NSDecimalNumber
с.Они почти никогда не используются, поскольку они либо просто не нужны (они предназначены для хранения чисел с чрезвычайно высокой точностью, намного превышающими возможности обычных примитивных значений), либо слишком сложны в использовании.Они также имеют свои собственные методы для выполнения арифметических операций, и, как правило, не имеют отношения к повседневному использованию.Опять же, если вам интересно, посмотрите подробнее NSDecimalNumber
Ссылка на класс .
По большей части вы хотите использовать примитивные числа для своих вычислений.Когда вам нужно сохранить их, вы часто можете «вставлять» и «распаковывать» (сохранять и извлекать) из NSNumber
объектов.