如何将NSDecimalNumber转换为NSNumber?我有一个NSDecimalNumber在一个方法中创建,该方法必须返回一个NSNumber对象,稍后可以使用[... isKindOfClass:[NSNumber class]]
进行检查- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
id rn = [self haveToBeNSNumber];
if ([rn isKindOfClass:[NSNumber class]]) {
NSLog(@"It's NSNumber class object");
}
return YES;
}
- (NSNumber *)haveToBeNSNumber {
NSDecimalNumber *dNumber = [NSDecimalNumber decimalNumberWithString:@"123.22"];
return dNumber;
}
答案 0 :(得分:7)
你有什么问题?
由于@dan状态NSDecimalNumber
是NSNumber
,因此NSDecimalNumber
会响应NSNumber
的所有方法。
如果需要,您可以转换返回类型:
return (NSNumber *)dNumber;
重新舍入和准确度:NSDecimalNumber
在值的精确十进制表示中,NSNumber
是值的紧密二进制表示,大多数不是整数的十进制数不能完全准确地表示在二进制(基数2)。
您可以使用NSNumberFormatter
控制显示的格式。 NSLog使用description
方法进行显示,并格式化Apple开发人员喜欢的数字。