Как найти сумму типа массива 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)
}
Другие вопросы по тегам