NSTimerIntervalの式で整数のオーバーフローが発生しますが、これは実際にはdoubleです。
NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000;
iPhoneでタイマー間隔を処理するための最良の方法は何ですか?
NSTimerIntervalの式で整数のオーバーフローが発生しますが、これは実際にはdoubleです。
NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000;
iPhoneでタイマー間隔を処理するための最良の方法は何ですか?
これは、計算が整数に対して実行され、整数の結果が得られるために発生する可能性が最も高いです。代わりに double 値を使用してみてください。
編集:確認したところ、これがまさに起こっていることです。計算を次のように変更すると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;
希望、問題を解決します。