Ado*_*els 2 objective-c nsdecimalnumber
如何将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;
}
Run Code Online (Sandbox Code Playgroud)
你有什么问题?
由于@dan状态NSDecimalNumber是a NSNumber,这是对a的NSDecimalNumber所有方法的响应NSNumber.
如果需要,可以转换返回类型:
return (NSNumber *)dNumber;
Run Code Online (Sandbox Code Playgroud)
重新舍入和精确度:NSDecimalNumber在值的精确十进制表示中,是值 NSNumber的紧密二进制表示,大多数不是整数的十进制数不能以二进制(基数2)完全准确地表示.
您可以使用控制显示的格式NSNumberFormatter.NSLog使用该description方法进行显示并格式化Apple开发人员喜欢的数字.