减去NSDecimalNumber swift?

时间:2016-08-06 03:11:15

标签: swift swift2 subtraction nsdecimalnumber

我想简单地从另一个NSDecimalNumber中减去一个NSDecimalNumber。无论出于何种原因,这都不起作用,并且第一个NSDecimalNumber没有更新。

这是我的代码。

func updateTotal(itemAmount amount: NSDecimalNumber) {
    print("before: \(self.total), amount: \(amount)")
    self.total.decimalNumberBySubtracting(amount)
    print("after: \(self.total)")
}

前后的self.total都不受减法的影响。我正在使用swift 2.0

1 个答案:

答案 0 :(得分:6)

这是因为decimalNumberBySubtracting(amount)返回一个新值,代码会忽略该值:

let res = self.total.decimalNumberBySubtracting(amount)
print("after: \(res)")

如果您想修改self.total,可以将其分配回来(假设它是var

self.total = self.total.decimalNumberBySubtracting(amount)