如果是正数则向上舍入,如果为负则向下舍入

时间:2014-09-10 17:40:01

标签: javascript math rounding

我正试图这样做以下数字是真的:

etc
5 = -2
6 = -1
7 = -1
8 = 0
9 = +1
10 = +1
11 = +2

等等。

我现在正在使用的是:

function AbilityModifier( n)
{
    return Math.round( (n-8) /2);
}     

返回正确的正数,但它使得7 = 0,6 = -1,5 = -1等。这是错误的。

我可以使用更好的配方吗?我记得我正在使用NBOS角色表设计师。

2 个答案:

答案 0 :(得分:4)

function AbilityModifier(n)
{
    var x = n - 8;
    if (x > 0)
        return Math.ceil(x / 2);
    return Math.floor(x / 2);
}     

答案 1 :(得分:0)

function AbilityModifier(n)
{
    var x = n - 8;
    var round = x > 0 ? Math.ceil : Math.floor;
    return round(x / 2);
}