【问题标题】:NSString to int loses precisionNSString 到 int 失去精度
【发布时间】:2014-12-09 08:46:35
【问题描述】:

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

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

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

为什么的结果只有2147483647?我该如何解决这个问题?

【问题讨论】:

    标签: objective-c nsstring int


    【解决方案1】:

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

    改用long

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

    【讨论】:

      【解决方案2】:

      int 值只能支持有限的位数。您应该使用floatdouble。 这是关于整数的更全面的文本link

      【讨论】:

        猜你喜欢
        • 2015-03-17
        • 2022-12-31
        • 2019-10-23
        • 2010-12-11
        • 2021-04-14
        • 2012-05-14
        • 2021-01-31
        • 1970-01-01
        相关资源
        最近更新 更多