如何使用不断递增的整数检测设定间隔的过去
How to detect the passing of a set interval with a constantly incrementing integer
我认为这应该很容易,但我被难住了。我有一个存储在数据库中的浮点数(我们称之为 N),它每 5-10 秒更新一次,总是增加一些未知的数量(通常在 0.0 到 200.0 之间)。我需要显示每次数字超过 304.8 间隔时出现的 "milestone"。
尝试使用 mod (304.8 % N) 检查它何时为 0,但这不起作用,因为例如 N 可能从 302.2 变为 308.6,永远不会有 0 余数。
我想计算达到的里程碑数(每次通过 304.8)并且每次都向用户发出通知。出于某种原因,我想不出一个合理的方法来做到这一点。
问题出现在我的 android (java) 程序中。
您可以 除以 n
里程碑,然后得出结果。然后将其与之前的结果进行比较。如果新的比以前的大,你已经通过了一个里程碑:
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
我认为这应该很容易,但我被难住了。我有一个存储在数据库中的浮点数(我们称之为 N),它每 5-10 秒更新一次,总是增加一些未知的数量(通常在 0.0 到 200.0 之间)。我需要显示每次数字超过 304.8 间隔时出现的 "milestone"。
尝试使用 mod (304.8 % N) 检查它何时为 0,但这不起作用,因为例如 N 可能从 302.2 变为 308.6,永远不会有 0 余数。
我想计算达到的里程碑数(每次通过 304.8)并且每次都向用户发出通知。出于某种原因,我想不出一个合理的方法来做到这一点。
问题出现在我的 android (java) 程序中。
您可以 除以 n
里程碑,然后得出结果。然后将其与之前的结果进行比较。如果新的比以前的大,你已经通过了一个里程碑:
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