在Javascript中计算舍入函数。

时间:2013-08-19 08:18:01

标签: javascript math numbers rounding multiplication

假设6是基于其他计算的NumberRequiredItems。我不想透露整个事情,只是想做这个圆整功能

我想做特定的四舍五入:

如果在6以内,则向下舍入到24的倍数(24的最小值),否则向上舍入 到24的倍数。

我得到24 * Math.round(NumberRequiredItems),我怎么办“6岁以内”呢?

例如像56这样的东西,最多可以有72个项目。如果是54,则下降到48等等。

我知道这看起来有点棘手,但我很乐意帮忙。它甚至可以帮助你。

3 个答案:

答案 0 :(得分:0)

function amount(NumberRequiredItems) {
    return 24 * Math.floor(NumberRequiredItems / 24) + (NumberRequiredItems % 24 > 6 ? 24 : 0);
}

http://jsfiddle.net/z7RtG/

答案 1 :(得分:0)

您可以使用Modulo运算符%进行除法运算,并返回余数以检查您的情况。

例如:56 % 24 = 854 % 24 = 6

我会写下你的舍入函数:

var roundRequiredItems = function (n) {
  if (n % 24 <= 6) {
    return Math.floor(n / 24) * 24
  } else {
    return Math.ceil(n / 24) * 24
  }
};

答案 2 :(得分:0)

您可以利用以下事实:在javascript中,n + true等于n + 1以智能方式解决您的问题:

function foo(n)
{
    return 24*( Math.floor(n/24) + (n%24 > 6));
}