2015-04-14 2 views
2

Я строю бюджетное приложение в Swift.Как найти сумму типа массива NSDecimalNumber

NSDecimalNumber первый добавлен в массив после действия (см. Ниже).

Затем NSDecimalNumber преобразуется в CurrencyFormat для TableView и добавляется в отдельный массив строк.

Как найти сумму сначала 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 (добавление) работает, но ничего не напечатано на сумму.

Любая помощь будет оценена, спасибо.

ответ

-1

Если вы хотите общую сумму первого массива, то вы можете привести его в два раза и добавить их вместе с 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 
+0

Спасибо! Это сработало! – Zach

+0

Без проблем, рад, что это сработало. Не могли бы вы пометить этот ответ, как ответили, пожалуйста? :) –

3

Это связано с тем, что нет определения бинарного оператора «+» для типа NSDecimalNumber. Поэтому, как только вы вручную определяете оператора, вы можете это сделать.

func +(lhs: NSDecimalNumber, rhs: NSDecimalNumber) -> NSDecimalNumber { 
    return lhs.decimalNumberByAdding(rhs) 
} 
+0

Спасибо! Это решило! – Zach

 Смежные вопросы

  • Нет связанных вопросов^_^