2015-01-04 4 views
1

Так что я хочу сделать NSInteger -> NSDecimalNumber для целей вычисления десятичных чисел.Как эффективно преобразовать NSInteger в NSDecimalNumber

Однако, как я это делаю сейчас, используется NSNumber в качестве промежуточного.

NSInteger -> NSNumber -> NSDecimalNumber

NSInteger myInteger = 41234312; 
NSDecimalNumber *myDecimal = [[NSNumber numberWithInteger:myInteger] decimalValue]; 

Есть более эффективный способ выполнить это преобразование?

+1

'decimalValue' возвращает' NSDecimal' не 'NSDecimalNumber *' –

ответ

3

Вам не нужно, чтобы преобразовать его в NSNumber, Вы можете использовать:

NSDecimalNumber *myDecimal = [NSDecimalNumber numberWithInteger:myInteger]; 

NSDecimal число подкласс NSNumber так что вы можете непосредственно использовать этот метод.

+0

Уверены ли вы в этом? Я не могу найти метод 'numberWithInt' или' decimalNumberWithInt' в документах NSDecimal https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSDecimalNumber_Class/index.html –

+3

'NSDecimalNumber' наследует 'NSNumber' и имеет метод' numberWithInt' (вы должны искать его в документации базового класса). Во всяком случае, почему бы не просто попытаться выяснить, работает ли код? –

+0

@MichaelHo: как указано в комментариях других пользователей SO, NSDecimalNumber является подклассом NSNumber. Вы можете проверить документацию –

Смежные вопросы