decimalNumberByAdding似乎不适合我?

时间:2015-10-02 14:27:03

标签: objective-c xcode decimal

我已声明以下变量:

NSDecimalNumber *gross_total = 0;
NSDecimalNumber *net_total = 0;
int *checks = 0;
NSString *current_check;

我试图遍历每个JSONElement以将所有值添加到一起以接收我称为'gross_total'的总计

for (int i = 0; i < TransactionArray.count; i++)
{
    NSDictionary *jsonElement = TransactionArray[i];


  NSDecimalNumber *gross = [NSDecimalNumber decimalNumberWithString:jsonElement[@"tran_value"]];

    gross_total = [gross_total decimalNumberByAdding:gross];


    // Accumulate if this is part of the previous check or a new one, add to INT Value for Check Count.

    if (jsonElement[@"tran_check"] == current_check){

    // DO NOTHING
    }
    else{
        //ADD TO THE CHECK COUNT
        checks++;

    }
    current_check = jsonElement[@"tran_check"];
}

使用断点,我发现'gross'从第一个JSONElement得到的值为3.4这很好,但是当它试图使用decimalNumberByAdding函数来累积'gross_total'时,该值不会传递给'gross_total ”。

我无法看到我做错了什么,并且会喜欢一些帮助吗?

1 个答案:

答案 0 :(得分:2)

NSDecimalNumber是一个对象。您不能通过简单地指定文字标量来声明它。

可以声明值为零的NSDecimalNumber

NSDecimalNumber *gross_total = [NSDecimalNumber zero];