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) 有效,但总和没有打印任何内容。
任何帮助将不胜感激,谢谢。
这是因为该类型没有二元运算符“+”的定义NSDecimalNumber。所以一旦你手动定义了操作符,你就可以做到。
func +(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> NSDecimalNumber {
return lhs.decimalNumberByAdding(rhs)
}
Run Code Online (Sandbox Code Playgroud)