2

我正在尝试使用以下代码从双精度数中减去 1:

-(NSMutableArray *)getMoreTwitterDataWithMaxID:(double)maxID {
    double newestID = (maxID - 1);
    NSLog(@"newest ID is %f and maxID is %f", newestID, maxID);
    // other code
}

控制台吐出这个:

2012-05-15 11:21:14.693 nearYou[2570:3a03] newest ID is 202429657738522624.000000 and maxID is 202429657738522624.000000

我不确定他们为什么不减去 . . .

非常感谢任何帮助!

4

2 回答 2

4

可能是你已经达到了双精度数据类型的限制。您可以改用NSDecimal

于 2012-05-15T18:44:19.350 回答
3

您可能已经达到双浮点格式的限制。64 位浮点格式只有 52 位尾数,这意味着它在使用指数之前只能以任何整数精度保存 52 位整数。你的数字比那个大,所以一个整数和下一个可能的整数之间的差距已经大于 1。

于 2012-05-15T18:39:20.590 回答