小编典典

如何将 NSString 转换为 NSNumber

all

如何转换一个NSString包含许多原始数据类型(例如intfloatcharunsigned int等)的?问题是,我不知道字符串在运行时将包含哪种数字类型。

我有一个想法,但我不确定这是否适用于任何类型,也适用于无符号和浮点值:

long long scannedNumber;
NSScanner *scanner = [NSScanner scannerWithString:aString];
[scanner scanLongLong:&scannedNumber]; 
NSNumber *number = [NSNumber numberWithLongLong: scannedNumber];

谢谢您的帮助。


阅读 108

收藏
2022-03-08

共1个答案

小编典典

使用NSNumberFormatter

NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42"];

如果字符串不是有效数字,myNumber则为nil. 如果它是一个有效的数字,那么您现在就NSNumber可以确定它实际上是什么类型的数字了。

2022-03-08