gpt4 book ai didi

iphone - NS小数乘法

转载 作者:行者123 更新时间:2023-12-03 20:59:06 24 4
gpt4 key购买 nike

我有一个基于数据的核心应用程序,它存储 decimalfloat 数据类型的多个属性。我正在编写一些 transient 属性/虚拟访问器来运行计算并返回一些派生数字,但我似乎无法让 NSDecimalNumber 乘法工作。

为什么这不起作用:

- (NSDecimalNumber *)discountedPrice {
return ([self.orderCost decimalNumberByMultiplyingBy:self.discountPercentage]);
}
// Error: Incompatible Objective-C types 'struct NSNumber *', expected 'struct NSDecimalNumber *' when passing argument 1 of 'decimalNumberByMultiplyingBy:' from distinct ...

当发生这种情况时:

- (NSDecimalNumber *)orderCost {
return ([self.orderCost decimalNumberByAdding:self.taxes]);
}

我假设我的对象从核心数据中获取一个NSNumber,无论数据模型中指定的存储类型如何,那么为什么会出现这种情况以及如何使其工作?我在这里完全误解了这一点吗?

非常感谢!

最佳答案

您遇到了问题,因为 -decimalNumberByMultiplyingBy: 需要一个 NSDecimalNumber,但(我推测)您正在向它传递一个包含 float 的 NSNumber双倍值(您的折扣百分比)。首先尝试构建一个 NSDecimalNumber:

- (NSDecimalNumber *)discountedPrice {
NSDecimalNumber *dec = [NSDecimalNumber decimalNumberWithDecimal:
[self.discountPercentage decimalValue]];
return ([self.orderCost decimalNumberByMultiplyingBy:dec]);
}

关于iphone - NS小数乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2455475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com