我有一個情況,我得到一個NSDecimal,我需要一個NSInteger。我知道這是一個非常小的值(這是絕對確定的)。它不會大於100.所以將它投射到NSInteger將會非常好,不會發生溢出。如何將NSDecimal值轉換爲NSInteger值?
這怎麼辦? NSDecimal中只有一個-doubleValue方法。
我有一個情況,我得到一個NSDecimal,我需要一個NSInteger。我知道這是一個非常小的值(這是絕對確定的)。它不會大於100.所以將它投射到NSInteger將會非常好,不會發生溢出。如何將NSDecimal值轉換爲NSInteger值?
這怎麼辦? NSDecimal中只有一個-doubleValue方法。
首先將其轉換爲NSDecimalNumber。 NSDecimalNumber是NSNumber的一個子類,因此您可以使用所有的NSNumber方法:
NSDecimalNumber *myNSDecimalNumber = [NSDecimalNumber decimalNumberWithDecimal:myNSDecimal];
NSInteger myInt = [myNSDecimalNumber intValue];
你總是可以抓住doubleValue(我假設你有一個NSDecimalNumber)和類型爲int的類型轉換。
看看NSDecimalNumber
Class Reference。從您的NSDecimal
創建一個NSDecimalNumber
,然後致電intValue
。
NSDecimalNumber * decNum = [NSDecimalNumber decimalNumberWithDecimal:yourDecimal];
int yourInt = [decNum intValue];
您是以「NSDecimal」還是「NSDecimalNumber」開頭的? 'NSDecimalNumber'有一個'-doubleValue'方法,但是'NSDecimal'沒有。 – kubi 2010-03-30 20:58:47