如何将NSString转换为长整型数值?

29

我有一个值100023,并且已将其存储在NSString中。

现在我想将此值传递到我的Web服务中,该服务包含长参数类型,因此如何将字符串值转换为长整型。

6个回答

59
您可以使用NSString方法intValuelongLongValue

24

对于像"100023"这样的小数字,使用'longlongvalue'是可以接受的。但是,如果数字位数超过10位,通常被视为需要使用长整型,则会遇到以下问题:

String value "86200054340607012013"

@"86200054340607012013" integerValue or intValue 

你将在打印语句中生成这个。
2147483647 

如果你这样做

@"86200054340607012013" longlongvalue

你需要在print语句中生成这个内容

9223372036854775807

这对我有效,并打印出预期的数字。
NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * myNumber = [f numberFromString:@"2394739287439284734723"];
NSLog(@"longlong: %llu", [myNumber longLongValue]);   

14

使用这个:

    yourLong = [yourString longLongValue];

2
您可以使用 doubleValue 方法来避免精度丢失警告。

0

答案是:

float floatId = [strID floatValue];

-12

做这个...

long value = [myString longValue]

1
不要这样做,因为会引发异常:"向未识别的实例发送选择器"。请改用"- (long long)longLongValue;"或"- (int)intValue;"方法。 - e40pud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接