2011-08-16 10 views
0

NSTimerIntervalの式で整数オーバーフローが発生します。これは実際には2倍です。iPhone:式の整数オーバーフロー

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

iPhoneでタイマー間隔を処理するにはどうすればよいですか?

答えて

0

使用、

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

希望は、問題を解決します。

2

これは、計算結果が整数結果であるために発生する可能性が高いためです。ダブル値を代わりに使用してみてください。

編集:私はちょうどチェックした、これはまさに何が起こっているのですか。計算をNSTimeInterval paymentTermsInMilliSeconds = 30.0 * 24.0 * 60.0 * 60.0 * 1000.0;に変更した場合、コードは正しい値「2592000000」を返します。それ以外の場合は、オーバーフローと "-1702967296"という結果に終わります。

1

おそらくNSTimeIntervalを意味します。これは通常、秒単位の時間間隔です。ミリ秒で使用するには、ミリ秒で0.001秒を使用します。

関連する問題