6

数aから0.5を引き、答えを数bに設定する必要があります。私のコードは機能するように見えますが、何が間違っているのかわかりません。私が得るエラーは減算ライン上にあります、エラーは言いincompatible type for argument 1 of 'decimalNumberBySubtracting:'ます。

ここに私のヘッダーがあります:(注:ヘッダーが大きいため、数字のみを表示しました)

    NSDecimalNumber *a;
    NSDecimalNumber *b;

残りはここにあります:(これがIBActionにあると仮定します)

    b = [a decimalNumberBySubtracting:0.5];

誰かが適切に助けを差し引く方法を知っているなら、いただければ幸いです。

4

1 に答える 1

14

パラメータもNSDecimalNumberである必要があります。

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

あなたの例では、フロートを使用しています。動作しない理由は2つあります。

  • Objective-Cは、実行時にフロートとオブジェクトを区別できません。つまり、オブジェクトの代わりにフロートを指定することはできません。
  • ほとんどの10進数は、2進数で正確に記述できないため、10進数または2進数のみを使用する必要がありますが、両方を使用することはできません。
于 2010-04-17T12:46:12.613 に答える