NSDecimalNumber вычитание - PullRequest
       12

NSDecimalNumber вычитание

6 голосов
/ 17 апреля 2010

Мне нужно вычесть 0,5 из числа а и установить ответ на число б. Мой код выглядит так, как будто он будет работать, но я не уверен, что делаю неправильно. Я получаю ошибку в строке вычитания, ошибка говорит incompatible type for argument 1 of 'decimalNumberBySubtracting:'.

Вот мой заголовок: (Примечание: я только показал числа, потому что заголовок большой)

    NSDecimalNumber *a;
    NSDecimalNumber *b;

Вот и все остальное: (Предположим, это в IBAction)

    b = [a decimalNumberBySubtracting:0.5];

Если кто-нибудь знает, как правильно вычесть любую помощь, будет признателен.

1 Ответ

13 голосов
/ 17 апреля 2010

Параметр также должен быть NSDecimalNumber.

NSDecimalNumber *half = [NSDecimalNumber decimalNumberWithString:@"0.5"];
b = [a decimalNumberBySubtracting:half];

В вашем примере вы используете поплавок. Есть две причины, которые не могут работать:

  • Objective-C не может различить float и объект во время выполнения, то есть вы не можете предоставить float вместо объекта.
  • Большинство десятичных чисел не могут быть точно описаны в двоичной системе, поэтому вы должны работать исключительно с десятичными или двоичными числами, но не с обоими.
...