如何找到数组类型 NSDecimalNumber 的总和

How to Find the Sum of Array Type NSDecimalNumber

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

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

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

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

var adding: [NSDecimalNumber] = [5, 6, 5.55, 6.55, 1]

我试过将数字转换为 NSDecimal(addingAmount),然后将其附加到上面的数组(添加):

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

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

如有任何帮助,我们将不胜感激。

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

func +(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> NSDecimalNumber {
    return lhs.decimalNumberByAdding(rhs)
}

如果您只想要第一个数组的总和,那么您可以将其转换为 double 并将它们与 mapreduce.

相加
var adding: [NSDecimalNumber] = [5, 6, 5.55, 6.55, 1]
let test = adding.map { Double([=10=]) }.reduce(0, combine: +)
println(test) // prints out 24.1