NSDecimalNumber减法

时间:2010-04-17 12:40:14

标签: cocoa math subtraction nsdecimalnumber

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

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

    NSDecimalNumber *a;
    NSDecimalNumber *b;

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

    b = [a decimalNumberBySubtracting:0.5];

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

1 个答案:

答案 0 :(得分:13)

参数也必须是NSDecimalNumber。

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

在你的例子中,你正在使用浮动。有两个原因是行不通的:

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