如何将NSDecimal值转换为NSInteger值?

时间:2010-03-30 20:47:37

标签: iphone

我有一种情况,我得到一个NSDecimal,我需要一个NSInteger。我知道它是一个非常小的值(这是绝对肯定的)。它不会大于100.所以将它转换为NSInteger是完全没问题的,不会发生溢出。

怎么可以这样做?在NSDecimal中只有一个-doubleValue方法。

3 个答案:

答案 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。