2010-03-30 6 views
1

J'ai une situation où je reçois un NSDecimal, et j'ai besoin d'un NSInteger. Je sais que c'est une très petite valeur (c'est absolument sûr). Ce ne sera pas plus grand que 100. Donc ce serait parfaitement bien de le lancer sur NSInteger, il n'y aurait pas de débordement.Comment convertir une valeur NSDecimal en une valeur NSInteger?

Comment cela a-t-il pu être fait? Il y a juste une méthode -doubleValue dans NSDecimal.

+0

Vous commencez avec un '' NSDecimal' ou un NSDecimalNumber'? 'NSDecimalNumber' a une méthode' -doubleValue', mais pas 'NSDecimal'. – kubi

Répondre

12

Commencez par le convertir en NSDecimalNumber. NSDecimalNumber est une sous-classe de NSNumber vous pouvez donc utiliser toutes les méthodes NSNumber:

NSDecimalNumber *myNSDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:myNSDecimal]; 
NSInteger myInt = [myNSDecimalNumber intValue]; 
1

vous pouvez toujours saisir le doubleValue (je suppose que vous avez un NSDecimalNumber) et le classer en int.

4

Regardez le NSDecimalNumber Class Reference. Créez un NSDecimalNumber à partir de votre NSDecimal, puis appelez le intValue.

NSDecimalNumber * decNum = [NSDecimalNumber decimalNumberWithDecimal:yourDecimal]; 

int yourInt = [decNum intValue]; 
Questions connexes