1. ホーム
  2. objective-c

[解決済み] NSStringをNSNumberに変換する方法

2022-03-17 13:51:01

質問

を変換するにはどうすればよいですか? NSString を含む、任意のプリミティブデータタイプの数値(例. int , float , char , unsigned int など)?問題は、実行時に文字列がどの数値型を含むか分からないことです。

しかし、符号なしや浮動小数点数など、どのような型でもうまくいくのかどうか、よくわかりません。

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

ありがとうございました。

どのように解決するのですか?

を使用します。 NSNumberFormatter :

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

文字列が有効な数値でない場合 myNumbernil . もしそれが有効な数字であれば、これですべての NSNumber が、実際にどのような数字であるかを把握するのに良い。