Вычитание NSDecimalNumber

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

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

    NSDecimalNumber *a;
    NSDecimalNumber *b;

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

    b = [a decimalNumberBySubtracting:0.5];

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

6
задан nosedive25 17 April 2010 в 12:40
поделиться

1 ответ

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

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

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

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

Похожие вопросы: