我正在尝试将一个数字限制为一系列数字的较低值。例如,如果我有一个系列(抱歉记号不好)
[pq]
其中p
是任何整数并且q
是任何正数。
说如果q is 50
我的系列将是...-150, -100, -50, 0, 50, 100, 150...
现在我想要的是有一个函数可以f(y)
将任何数字夹在系列中的下一个最低数字。
例如,如果我有37
我期待的数字f(37) = 0
和我期待的数字f(-37) = -50
。
我尝试了许多涉及模数和整数除法的算法,但我似乎无法弄清楚。我尝试过的最新的是例如
(37 / q) * q
这适用于正数,但不适用于 -50 和 0 之间的任何数字。
我也尝试过((37 - q) / q) * q
,但这不适用于恰好落在该系列中的负面案例。
编辑
假设我没有整个系列,而只有系列的乘数p
。