J'ai une application basée sur les données de base qui stocke plusieurs propriétés dans les types de données decimal
et float
. J'écris quelques propriétés transitoires/accesseurs virtuels qui exécutent des calculs et retournent des nombres dérivés, mais je n'arrive pas à obtenir la multiplication NSDecimalNumber pour fonctionner.Multiplication NSDecimal
Pourquoi ça marche pas:
- (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 ...
Lorsque cela se fait:
- (NSDecimalNumber *)orderCost {
return ([self.orderCost decimalNumberByAdding:self.taxes]);
}
Je suppose que mon objet obtient une NSNumber
à partir des données de base quel que soit le type de stockage spécifié dans le modèle de données, alors pourquoi ce vomi et comment puis-je le faire fonctionner? Suis-je complètement mal compris ici?
Merci beaucoup!