减去 NSDecimalNumber swift?

Subtracting NSDecimalNumber swift?

我想简单地从另一个中减去一个 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

这是因为 decimalNumberBySubtracting(amount) returns 一个新值,您的代码忽略了它:

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

如果你想修改self.total,你可以将它赋值回来(假设它是一个var

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