Ios 如何有效地将NSInteger转换为NSDecimalNumber
所以我想做Ios 如何有效地将NSInteger转换为NSDecimalNumber,ios,objective-c,macos,Ios,Objective C,Macos,所以我想做NSInteger->NSDecimalNumber来进行十进制计算 然而,我目前的做法是使用NSNumber作为中介 NSInteger->NSNumber->NSDecimalNumber NSInteger myInteger = 41234312; NSDecimalNumber *myDecimal = [[NSNumber numberWithInteger:myInteger] decimalValue]; 是否有更有效的方法执行此转换?您不需要将其转换为NSNumbe
NSInteger->NSDecimalNumber
来进行十进制计算
然而,我目前的做法是使用NSNumber作为中介
NSInteger->NSNumber->NSDecimalNumber
NSInteger myInteger = 41234312;
NSDecimalNumber *myDecimal = [[NSNumber numberWithInteger:myInteger] decimalValue];
是否有更有效的方法执行此转换?您不需要将其转换为
NSNumber
,您可以使用:
NSDecimalNumber *myDecimal = [NSDecimalNumber numberWithInteger:myInteger];
NSDecimal
number是NSNumber
的子类,因此您可以直接使用此方法。您确定吗?我在NSDecimal的文档中找不到方法numberwhithint
或decimalnumberwhithint
,它继承了NSNumber
,并且确实有numberwhithint
方法(您必须在基类的文档中查找)。不管怎样,为什么不试着看看代码是否有效?@MichaelHo:正如其他SO用户在评论中提到的,NSDecimalNumber是NSNumber的一个子类。你们可以查看文档你们是对的,我没有注意到NSDecimalNumber是NSNumber的一个子类,谢谢+numberWithInteger:
应返回一个NSNumber
,而不是NSDecimalNumber
,无论是从NSDecimalNumber
还是NSNumber
调用它,decimalValue
返回一个NSDecimalNumber
而不是NSDecimalNumber*