0

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

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

iPhoneでタイマー間隔を処理するための最良の方法は何ですか?

4

3 に答える 3

2

これは、計算が整数に対して実行され、整数の結果が得られるために発生する可能性が最も高いです。代わりに double 値を使用してみてください。

編集:確認したところ、これがまさに起こっていることです。計算を次のように変更するとNSTimeInterval paymentTermsInMilliSeconds = 30.0 * 24.0 * 60.0 * 60.0 * 1000.0;、コードは正しい値 "2592000000" を返します。そうしないと、オーバーフローが発生し、"-1702967296" という結果になります。

于 2011-08-16T12:33:03.743 に答える
1

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

于 2011-08-16T12:43:05.327 に答える
0

使用する、

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

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

于 2011-08-16T12:37:04.913 に答える