Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何有效地将NSInteger转换为NSDecimalNumber_Ios_Objective C_Macos - Fatal编程技术网

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*