如何求数组类型 NSDecimalNumber 的总和

3 arrays sum nsdecimalnumber swift

我正在 Swift 中构建一个预算应用程序。

NSDecimalNumber在一个动作之后首先被添加到一个数组中(如下)。

然后将 NSDecimalNumber 转换为用于 TableView 的 CurrencyFormat,并附加到一个单独的字符串数组。

如何找到第一个NSDecimalNumbers 数组的总和以创建可用金额标签?

var adding: [NSDecimalNumber] = [5, 6, 5.55, 6.55, 1]
Run Code Online (Sandbox Code Playgroud)

我尝试将数字转换为 NSDecimal(addingAmount),然后将其附加到上述数组中(相加):

let addingAmount = NSDecimalNumber(string: textInput.text) / decimal100
    adding.append(addingAmount)
    println(adding)
    println(reduce(adding, 0, +)) // prints 15
Run Code Online (Sandbox Code Playgroud)

不幸的是, println(adding) 有效,但总和没有打印任何内容。

任何帮助将不胜感激,谢谢。

fin*_*all 6

这是因为该类型没有二元运算符“+”的定义NSDecimalNumber。所以一旦你手动定义了操作符,你就可以做到。

func +(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> NSDecimalNumber {
    return lhs.decimalNumberByAdding(rhs)
}
Run Code Online (Sandbox Code Playgroud)