0

我有一种情况需要添加两个 NSDecimal,这是我拥有的代码:

NSDecimalNumber *total = [[NSDecimalNumber alloc] initWithString:@"0"];
for (Product* product in cartItems) {
    NSDecimalNumber *prodPrice = [[NSDecimalNumber alloc] init];
    prodPrice = product.price;
    total = [total decimalNumberByAdding:prodPrice];
}
return total;

当我尝试添加两个数字(例如 0.01 和 0.02)并且它给了我 0.03 时,它完全可以工作。

但是当我使用整数时,它不起作用。例如,当我尝试将 0.01 和 1 相加时,它给了我一个负数。谁能帮我解决这个问题?

谢谢

4

1 回答 1

0

我稍微修改了你的循环。分配 productPrice = product.price 在您的代码中肯定是错误的。看这个:

NSArray *cartItems = [NSArray arrayWithObjects:@"1", @".01", nil];
NSDecimalNumber *total = [[NSDecimalNumber alloc] initWithString:@"0"];

for (NSString *price in cartItems) {
    NSDecimalNumber *prodPrice = [[NSDecimalNumber alloc] initWithString:price];
    total = [total decimalNumberByAdding:prodPrice];
}
NSLog(@"Total: %@", total);

返回

 2012-09-13 15:04:03.815 Searcher[69779:f803] TotalL 1.01
于 2012-09-13T19:11:12.387 回答