如何找到数组类型 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 并将它们与 map
和 reduce
.
相加
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
我正在 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 并将它们与 map
和 reduce
.
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