1

有谁知道这段代码有什么问题

NSDecimalNumber *quantity = [[NSDecimalNumber alloc] initWithString:[item objectForKey:@"Quantity"]];
NSDecimalNumber *price =  [[NSDecimalNumber alloc] initWithString:[item objectForKey:@"Price"]];
NSDecimalNumber *itemTotal = [price decimalNumberByMultiplyingBy:quantity];

第 3 行抛出异常并出现错误:

Terminating app due to uncaught exception 'NSDecimalNumberOverflowException', reason: 'NSDecimalNumber overflow exception'
4

1 回答 1

5

我猜您传递给 initWithString 的字符串不是有效数字。在计算 itemTotal 之前,将数量和价格与 [NSDecimalNumber notANumber] 进行比较。

于 2013-04-29T16:42:26.193 回答