[英]How to convert NSDecimalNumber to NSNumber
How to convert NSDecimalNumber To NSNumber? 如何将NSDecimalNumber转换为NSNumber? I have a NSDecimalNumber created inside a method which have to return a NSNumber object which can be checked later with [ ... isKindOfClass:[NSNumber class]] 我在一个方法中创建了一个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;
}
What is wrong with what you have? 你有什么问题?
As @dan states NSDecimalNumber
is a NSNumber
, that is a NSDecimalNumber
responds to all the methods of a NSNumber
. 由于@dan状态NSDecimalNumber
是NSNumber
,因此NSDecimalNumber
响应NSNumber
所有方法。
You can cast the return type if you need to: 如果需要,可以转换返回类型:
return (NSNumber *)dNumber;
Re rounding and accuracy: NSDecimalNumber
in an exact decimal representation of the value, NSNumber
is a close binary representation of the value, most decimal numbers that are not integers can not be represented with complete accuracy in binary (base 2). 重新舍入和准确性: NSDecimalNumber
在值的精确十进制表示中, NSNumber
是值的紧密二进制表示,大多数不是整数的十进制数不能以二进制(基数2)完全准确地表示。
You control the displayed format with NSNumberFormatter
. 您可以使用NSNumberFormatter
控制显示的格式。 NSLog used the description
method for display and formats the number the Apple developer liked. NSLog使用description
方法进行显示并格式化Apple开发人员喜欢的数字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.