NSString to int失去精度

时间:2014-10-14 14:02:29

标签: objective-c nsstring int

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

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

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

为什么一个两个的结果仅为 2147483647 ?我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

int值只能支持有限数量的位。您应该使用floatdouble。 以下是有关整数link

的更全面的文字

答案 1 :(得分:0)

这取决于平台,但在32位平台上,int的限制为+/- 20亿(准确地说是-2,147,483,648到2,147,483,647)。

改为使用long

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