我有一种情况,我得到一个NSDecimal,我需要一个NSInteger。我知道它是一个非常小的值(这是绝对肯定的)。它不会大于100.所以将它转换为NSInteger是完全没问题的,不会发生溢出。
怎么可以这样做?在NSDecimal中只有一个-doubleValue方法。
答案 0 :(得分:12)
首先将其转换为NSDecimalNumber。 NSDecimalNumber是NSNumber的子类,因此您可以使用所有NSNumber方法:
NSDecimalNumber *myNSDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:myNSDecimal];
NSInteger myInt = [myNSDecimalNumber intValue];
答案 1 :(得分:4)
查看NSDecimalNumber
Class Reference。从NSDecimalNumber
创建NSDecimal
,然后拨打intValue
。
NSDecimalNumber * decNum = [NSDecimalNumber decimalNumberWithDecimal:yourDecimal];
int yourInt = [decNum intValue];
答案 2 :(得分:1)
你总是可以获取doubleValue(我假设你有一个NSDecimalNumber)并将其转换为int。