decimalNumberByAdding 似乎对我不起作用?

decimalNumberByAdding doesn't seem to work for me?

我已经声明了以下变量:

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' 从 3.4 的第一个 JSONElement 中获取了一个值,这很好,但是当它尝试使用 decimalNumberByAdding 函数来累积 'gross_total' 值时未传递给 'gross_total'.

我看不出我做错了什么,需要一些帮助吗?

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

可以声明值为零的NSDecimalNumber

NSDecimalNumber *gross_total = [NSDecimalNumber zero];