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];
为什么one和two的结果只有2147483647?如何解决此问题?
int
值只能支持有限的位数。您应该使用float
或double
。
下面是关于整数的更全面的文本它取决于平台,但在32位平台上,
int
的限制为+/-20亿(−精确地说是2147483648到2147483647)
改为使用long
:
long one = [value1 longValue];
long two = [value2 longValue];