0

我无法将像 9.471347923322231e+18 这样的指数数字转换为 nsnumber。有谁知道如何反过来做?谢谢。

4

1 回答 1

1

对于指数数,您应该使用:

NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithMantissa:12345
                                       exponent:-3
                                       isNegative:YES];

或者如果你想从 NSString 获取它:

+ (NSDecimalNumber *)decimalNumberWithString:(NSString *)numericString locale:(NSDictionary *)locale;

例如:

NSString *stringNumber = @"9.471347923322231e+18";
NSDictionary    *locale = [NSDictionary dictionaryWithObject:@"." forKey:NSLocaleDecimalSeparator];
NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:stringNumber locale:locale];
于 2013-10-22T14:57:21.190 回答