Objective c NSString到int失去精度

Objective c NSString到int失去精度,objective-c,nsstring,int,Objective C,Nsstring,Int,我有一个文本字符串,它表示一个没有浮点数的特定值: NSString *value1 = @"20141014135017"; NSString *value2 = @"20141014131024"; int one = [value1 intValue]; int two = [value2 intValue]; 为什么one和two的结果只有2147483647?如何解决此问题?int值只能支持有限的位数。您应该使用float或double。 下面是关于整数的更全面的文本它取决于平台,

我有一个文本字符串,它表示一个没有浮点数的特定值:

NSString *value1 = @"20141014135017";
NSString *value2 = @"20141014131024";

int one = [value1 intValue];
int two = [value2 intValue];

为什么onetwo的结果只有2147483647?如何解决此问题?

int
值只能支持有限的位数。您应该使用
float
double

下面是关于整数的更全面的文本

它取决于平台,但在32位平台上,
int
的限制为+/-20亿(−精确地说是2147483648到2147483647)

改为使用
long

long one = [value1 longValue];
long two = [value2 longValue];