假设 6 是基于其他计算的 NumberRequiredItems。我不想给出整个事情,只想做这个四舍五入的功能
我想做具体的四舍五入:
如果在 6 以内,则向下舍入为 24 的倍数(24 的最小值),否则向上舍入为 24 的倍数。
我知道我会做 24*Math.round(NumberRequiredItems),但我该怎么做“6 以内”?
例如,如果 56 之类的东西,最多 72 项。如果是 54,则下降到 48,等等。
我知道这似乎有点棘手,但我很想得到帮助。它甚至可以帮助你。
假设 6 是基于其他计算的 NumberRequiredItems。我不想给出整个事情,只想做这个四舍五入的功能
我想做具体的四舍五入:
如果在 6 以内,则向下舍入为 24 的倍数(24 的最小值),否则向上舍入为 24 的倍数。
我知道我会做 24*Math.round(NumberRequiredItems),但我该怎么做“6 以内”?
例如,如果 56 之类的东西,最多 72 项。如果是 54,则下降到 48,等等。
我知道这似乎有点棘手,但我很想得到帮助。它甚至可以帮助你。
function amount(NumberRequiredItems) {
return 24 * Math.floor(NumberRequiredItems / 24) + (NumberRequiredItems % 24 > 6 ? 24 : 0);
}
您将使用 Modulo 运算符 ,%
它进行除法并返回余数以检查您的条件。
例如:56 % 24 = 8
和54 % 24 = 6
我会写你的舍入函数是这样的:
var roundRequiredItems = function (n) {
if (n % 24 <= 6) {
return Math.floor(n / 24) * 24
} else {
return Math.ceil(n / 24) * 24
}
};
您可以利用这样一个事实,即在 javascript 中,n+true 等于 n+1 以一种聪明的方式解决您的问题:
function foo(n)
{
return 24*( Math.floor(n/24) + (n%24 > 6));
}