0

2 つの NSDecimals を追加する必要がある状況があり、これが私が持っているコードです。

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 などの 2 つの数値を加算しようとすると、完全に機能し、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 に答える