我正在Swift中构建预算应用。
NSDecimalNumber 第一次在操作后添加到数组中(如下所示)。
然后 NSDecimalNumber将转换为TableView的CurrencyFormat,并附加到单独的字符串数组。
如何找到第一个 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(添加)有效,但没有打印任何内容。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:4)
这是因为没有二元运算符的定义' +'对于NSDecimalNumber
类型。因此,一旦您手动定义运算符,就可以执行此操作。
func +(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> NSDecimalNumber {
return lhs.decimalNumberByAdding(rhs)
}
答案 1 :(得分:-3)
如果您只想要第一个数组的总和,那么您可以将其转换为加倍,并将其与map
和reduce
一起添加。
var adding: [NSDecimalNumber] = [5, 6, 5.55, 6.55, 1]
let test = adding.map { Double($0) }.reduce(0, combine: +)
println(test) // prints out 24.1