iPhone:表达式中的整数溢出

时间:2011-08-16 12:29:13

标签: iphone nsnumber nstimeinterval

我在NSTimerInterval的表达式中得到整数溢出,这实际上是双倍的。

NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000; 

在iPhone中处理计时器间隔的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

这很可能是因为正在对整数执行计算而产生的,这会产生整数结果。请尝试使用双精度值。

编辑:我刚检查过,这正是发生的事情。如果将计算更改为:NSTimeInterval paymentTermsInMilliSeconds = 30.0 * 24.0 * 60.0 * 60.0 * 1000.0;,则代码将提供正确的值“2592000000”。否则,您最终会出现溢出,结果为“-1702967296”。

答案 1 :(得分:1)

你可能意味着NSTimeInterval。这通常是以秒为单位的时间间隔。要使用毫秒,请使用0.001秒(毫秒)。

答案 2 :(得分:0)

使用,

NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000.0; 
希望,能解决问题。