5

我有一个数字字符串,并观察到它intValue与其字符串值有很大不同的差异。下面的代码:

NSString *string = [result objectForKey:@"id"];
NSLog(@"ID %@",string);
NSLog(@"ID as integer %i",[string intValue]);

给出一个输出:

"ID 100004378121454"
"ID as integer 2147483647"

我能做出的唯一合乎逻辑的猜测是字符串太长而无法转换为int......无论如何我都尝试过longLongValue- 得到不同的结果,但不是应该的结果。

4

1 回答 1

14

您的数字(100004378121454)大于简单的 int 可以处理的数字,long long在这种情况下您必须使用 type (以免您的数字被截断为 int32 最大值):

NSString *string = @"100004378121454";
NSLog(@"ID %@",string);
NSLog(@"ID as long long %lli",[string longLongValue]); 

输出 :

ID              100004378121454
ID as long long 100004378121454
于 2012-09-29T09:59:48.827 回答