我在 NSTimerInterval 的表达式中得到整数溢出,这实际上是一个双精度数。
NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000;
在 iPhone 中处理计时器间隔的最佳方法是什么?
我在 NSTimerInterval 的表达式中得到整数溢出,这实际上是一个双精度数。
NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000;
在 iPhone 中处理计时器间隔的最佳方法是什么?
这很可能是因为计算是在整数上执行的,结果是整数。尝试使用双精度值。
编辑:我刚刚检查过,这正是正在发生的事情。如果将计算更改为:NSTimeInterval paymentTermsInMilliSeconds = 30.0 * 24.0 * 60.0 * 60.0 * 1000.0;
,则代码给出正确的值“2592000000”。否则,您最终会出现溢出和“-1702967296”的结果。
你可能的意思是NSTimeInterval
。这通常是以秒为单位的时间间隔。要使用毫秒,请使用 0.001 秒作为毫秒。
采用,
NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000.0;
希望,能解决问题。