web-dev-qa-db-fra.com

Comment je peux convertir NSString en valeur longue?

J'ai une valeur 100023 et je l'ai pris dans NSString.

Maintenant, je souhaite transmettre cette valeur à mon service Web, qui contient un type de paramètre long. Comment puis-je convertir une valeur chaîne en long.

28
Ankit Vyas

Vous pouvez utiliser les méthodes NSStringintValuelongLongValue.

56
YPK

Pour un petit nombre comme celui-ci "100023", cela est acceptable avec "longlongvalue". Cependant, si les chiffres du numéro ont plus de> 10, ce qui est généralement considéré comme le cas d'utilisation d'une valeur longue. Ensuite, vous rencontrerez ce problème, tel que:

String value "86200054340607012013"

faire 

@"86200054340607012013" integerValue or intValue 

vous produirez ceci dans la déclaration d'impression

2147483647 

si tu fais 

@"86200054340607012013" longlongvalue

vous produirez ceci dans la déclaration d'impression

9223372036854775807

Cela fonctionne pour moi et affiche le nombre attendu.

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"2394739287439284734723"];
NSLog(@"longlong: %llu", [myNumber longLongValue]);   
23
Kevin

Utilisez ceci:

    yourLong = [yourString longLongValue];
13
Andrés Canavesi

vous pouvez utiliser la méthode doubleValue pour éviter les avertissements de perte de précision

2
Chuy47

La réponse est : 

float floatId = [strID floatValue];
0
momomo