582 Stimmen

Konvertierung eines NSString in eine NSNumber

Wie kann ich eine NSString mit einer Zahl eines beliebigen primitiven Datentyps (z. B. int , float , char , unsigned int , usw.)? Das Problem ist, dass ich nicht weiß, welchen Zahlentyp die Zeichenfolge zur Laufzeit enthalten wird.

Ich habe eine Idee, wie man das macht, aber ich bin mir nicht sicher, ob das mit jedem Typ funktioniert, auch mit vorzeichenlosen und Fließkommawerten:

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

Vielen Dank für die Hilfe.

2voto

martin Punkte 84867

Was ist mit dem Standard von C? atoi ?

int num = atoi([scannedNumber cStringUsingEncoding:NSUTF8StringEncoding]);

Gibt es Ihrer Meinung nach irgendwelche Vorbehalte?

2voto

user1479883 Punkte 51

Sie können einfach Folgendes verwenden [string intValue] ou [string floatValue] ou [string doubleValue] usw.

Sie können auch Folgendes verwenden NSNumberFormatter Klasse:

2voto

Parv Bhasker Punkte 1625

Sie können auch tun, wie dieser Code 8.3.3 ios 10.3 Unterstützung

[NSNumber numberWithInt:[@"put your string here" intValue]]

1voto

Rizwan Ahmed Punkte 901

Versuchen Sie dies

NSNumber *yourNumber = [NSNumber numberWithLongLong:[yourString longLongValue]];

Hinweis - Ich habe longLongValue gemäß meiner Anforderung verwendet. Sie können auch integerValue, longValue oder ein anderes Format je nach Ihren Anforderungen verwenden.

1voto

Sandip Patel - SM Punkte 3256
NSDecimalNumber *myNumber = [NSDecimalNumber decimalNumberWithString:@"123.45"];
NSLog(@"My Number : %@",myNumber);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X