NSDecimalNumber减法

nos*_*e25 6 math cocoa subtraction nsdecimalnumber

我需要从数字a中减去0.5并将答案设置为数字b.我的代码看起来会起作用,但我不确定我做错了什么.我得到的错误是在减法线上,错误说incompatible type for argument 1 of 'decimalNumberBySubtracting:'.

继承我的标题:(注意:我只显示数字,因为标题很大)

    NSDecimalNumber *a;
    NSDecimalNumber *b;
Run Code Online (Sandbox Code Playgroud)

继承人:(假设这是在IBAction中)

    b = [a decimalNumberBySubtracting:0.5];
Run Code Online (Sandbox Code Playgroud)

如果有人知道如何正确减去任何帮助将不胜感激.

Geo*_*lly 13

该参数也必须是NSDecimalNumber.

NSDecimalNumber *half = [NSDecimalNumber decimalNumberWithString:@"0.5"];
b = [a decimalNumberBySubtracting:half];
Run Code Online (Sandbox Code Playgroud)

在你的例子中,你使用的是浮点数.有两个原因是行不通的:

  • Objective-C无法在运行时区分浮点数和对象,这意味着您无法提供浮点数而不是对象.
  • 大多数十进制数不能在二进制系统中准确描述,因此您必须专门使用十进制二进制数,但不能同时使用两者.