2010-10-07 20 views
2

Je tire des valeurs décimales d'une table SQL en tant que champ de texte que je convertis ensuite en NSDecimalNumber (c'est simplement parce que je ne connaissais pas les valeurs décimales en lecture/écriture de sqllite).Exemples de calculs décimaux dans l'iPhone

De toute façon, maintenant j'ai frappé un mur maintenant que j'essaie de faire des routines mathématiques simples sur ces variables décimales. Tels que, Sum = Balance * Interest_Rate. L'idée est que je travaille avec des calculs d'argent. Connaissez-vous des exemples/tutoriels qui enseignent comment faire ces opérations en utilisant soit NSDecimal, NSDecimalNumber, ou les deux?

Merci.

+0

Y at-il une raison pour laquelle vous n'utilisez pas simplement un flotteur pour stocker le numéro? Il est très facile de convertir une chaîne en un flotteur. http://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/Reference/NSString.html#//apple_ref/occ/instm/NSString/floatValue –

+0

Oui. tout ive lu suggère de ne pas utiliser float/double pour les calculs liés à l'argent. – AlvinfromDiaspar

Répondre

3

Init:

NSString *number = @"123.4"; 
NSDecimalNumber *myDecimal = [[NSDecimalNumber alloc] initWithString: number]; 

Pour faire ce que vous voulez faire:

NSDecimalNumber *sum = [[NSDecimalNumber alloc] initWithDecimal:[balance decimalNumberByMultiplyingBy: interest_rate]; 

Comment?

Eh bien, vous faites un NSDecimalNumber et alloc, puis initWithDecimal. Quelle décimale? solde multiplié (decimalNumberByMultiplyingBy) par interest_rate.

+0

Merci. laissez-moi voir si je peux faire ce travail pour moi. – AlvinfromDiaspar

+0

Mais n'y a-t-il pas un moyen d'effectuer des opérations en utilisant NSDecimal? – AlvinfromDiaspar