减去NSDecimalNumber swift?

mat*_*405 2 subtraction nsdecimalnumber swift swift2

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

这是我的代码.

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

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

das*_*ght 6

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

let res = self.total.decimalNumberBySubtracting(amount)
print("after: \(res)")
Run Code Online (Sandbox Code Playgroud)

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

self.total = self.total.decimalNumberBySubtracting(amount)
Run Code Online (Sandbox Code Playgroud)