1

これはかなり簡単だと思いますが、私は困惑しています。データベースにフロートが格納されており(Nと呼びましょう)、5〜10秒ごとに更新され、常に不明な量(通常は0.0〜200.0)ずつ増加します。数値が 304.8 の間隔を超えるたびに発生する「マイルストーン」を表示する必要があります。

mod (304.8 % N) を使用して 0 であることを確認しようとすると、N が 302.2 から 308.6 に変化する可能性があり、残りが 0 になることはないため、うまくいきません。

到達したマイルストーンの数を計算し (304.8 が渡されるたびに)、毎回ユーザーに通知したいと考えています。何らかの理由で、これを行うための合理的な方法が思いつきません。

この問題は、Android (Java) プログラムで発生しています。

4

1 に答える 1

0

You could to divide n by the milestone and floor the result. Then compare it to the previous result. If the new one is larger than the previous one, you've passed a milestone:

double interval = 304.8;
double prev = // saved from the previous round
double curr = prev + someIncrement();
if (Math.floor(curr/interval) > Math.floor(prev/interval)) {
    milestonePassed();
}
prev = curr; // For next round
于 2016-10-27T00:59:58.593 に答える