我如何将NSString转换为长值?

Ank*_*yas 29 objective-c nsstring long-integer

我有一个价值100023,我已经接受了NSString.

现在我想在包含长参数类型的Web服务中传递此值,以便如何将字符串值转换为long.

YPK*_*YPK 56

你可以使用NSString方法intValue longLongValue.


Kev*_*vin 23

对于像"100023"这样的小数字,"longlongvalue"可以接受.但是,如果数字的数字大于10,则通常将其视为长值的用例.然后,您将遇到此问题,例如:

String value "86200054340607012013"
Run Code Online (Sandbox Code Playgroud)

@"86200054340607012013" integerValue or intValue 
Run Code Online (Sandbox Code Playgroud)

你会在print语句中产生这个

2147483647 
Run Code Online (Sandbox Code Playgroud)

如果你这样做

@"86200054340607012013" longlongvalue
Run Code Online (Sandbox Code Playgroud)

你会在print语句中产生这个

9223372036854775807
Run Code Online (Sandbox Code Playgroud)

这适用于我并打印出预期的数字.

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"2394739287439284734723"];
NSLog(@"longlong: %llu", [myNumber longLongValue]);   
Run Code Online (Sandbox Code Playgroud)


And*_*esi 13

用这个:

    yourLong = [yourString longLongValue];
Run Code Online (Sandbox Code Playgroud)