我已声明以下变量:
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 ”。
我无法看到我做错了什么,并且会喜欢一些帮助吗?
答案 0 :(得分:2)
NSDecimalNumber
是一个对象。您不能通过简单地指定文字标量来声明它。
可以声明值为零的NSDecimalNumber
NSDecimalNumber *gross_total = [NSDecimalNumber zero];