Как найти сумму типа массива NSDecimalNumber
Я создаю бюджетное приложение в Swift.
NSDecimalNumber сначала добавляется в массив после действия (ниже).
Затем NSDecimalNumber преобразуется в CurrencyFormat для TableView и добавляется в отдельный массив строк.
Как я могу найти сумму первого массива NSDecimalNumbers для создания метки доступной суммы?
var adding: [NSDecimalNumber] = [5, 6, 5.55, 6.55, 1]
Я попытался это преобразовать число в NSDecimal(добавление Amount), а затем добавить его в массив выше (добавление):
let addingAmount = NSDecimalNumber(string: textInput.text) / decimal100
adding.append(addingAmount)
println(adding)
println(reduce(adding, 0, +)) // prints 15
К сожалению, println(добавление) работает, но ничего не печатается на сумму.
Любая помощь будет оценена, спасибо.
2 ответа
Если вы просто хотите получить общую сумму первого массива, вы можете привести ее к удвоению и сложить вместе с 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
Это потому, что не существует определения бинарного оператора "+" для NSDecimalNumber
тип. Так что, как только вы вручную определите оператора, вы можете сделать это.
func +(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> NSDecimalNumber {
return lhs.decimalNumberByAdding(rhs)
}