나는 이런 질문을하지 말아야한다는 것을 알고 있습니다. 그러나, 나는 단서없이 여기에서 찔 렸다. 그래서, 나는 정말로 도움이 필요하다.NSDecimalNumber에 NSDecimalNumber를 곱하면 0을 반환합니다.
제품을 예로 들어 보겠습니다.
// 제품
NSDecimalNumber * 수량
NSDecimalNumber의 * 가격
난 할 노력하고있어하면 가격을 요약하고 라벨로 설정합니다. 내가 검색하고 여기에 NSDecimalNumber는 실제 값을 감싸는 객체이므로 표준 일치 작업을 수행 할 수 없다는 메시지가 있습니다. decimalNumberByAdding 및 decimalNumberByMultiplyingBy을 통해 수행해야합니다. 그래서, 다음 코드를 작성했습니다 :
NSDecimalNumber *totalPrice = [[NSDecimalNumber alloc] initWithDouble:0.0];
[self.productArray enumerateObjectsUsingBlock:^(Product *product, NSUInteger idx, BOOL *stop) {
[totalPrice decimalNumberByAdding:[product.price decimalNumberByMultiplyingBy:product.quantity]];
NSLog(@"%@", totalPrice);
NSLog(@"%@", totalPrice.doubleValue);
NSLog(@"%@", totalPrice.decimalValue);
}];
NSLog가 올바른 결과를 보이지 않았습니다. 0 또는 NULL을 표시하지 않았습니다.
그러나 NSLog에 다음 코드를 입력하면 올바른 결과가 표시 될 수 있습니다.
[product.price decimalNumberByMultiplyingBy:product.quantity]
여기서 내가 무엇을 놓칠 지 알려줄 수 있습니까?
0을 곱하지 않는지 확인하십시오. 그들을 사용하기 전에 귀하의 초기 값을 NSLog하십시오. –