Вопрос

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

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

    NSDecimalNumber *a;
    NSDecimalNumber *b;

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

    b = [a decimalNumberBySubtracting:0.5];

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

Это было полезно?

Решение

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

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

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

  • Objective-C не может отличить поплавок и объект во время выполнения, что означает, что вы не можете предоставить плавать вместо объекта.
  • Большинство десятичных чисел не могут быть описаны именно в двоичной системе, поэтому вы должны работать исключительно с десятичным или Двоичные номера, но не оба.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top