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.
Vous pouvez utiliser les méthodes NSString
intValue
longLongValue
.
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]);
Utilisez ceci:
yourLong = [yourString longLongValue];
vous pouvez utiliser la méthode doubleValue pour éviter les avertissements de perte de précision
La réponse est :
float floatId = [strID floatValue];