寻找更接近的价值

时间:2011-12-28 08:05:32

标签: javascript html

我想找一个更接近特定数字的数字。在当前示例中,partitucal数是15.我将n传递给方法,它将返回最接近完全除以15的方法 我想要一个像这样的方法

function getCloser(no){
    if(no is closer to 0)    // in this case no can be 1,2,3,4,5,6,7
        return 0
    if(no is closer to 15)   // in this case no can be 8,9,10,11,12,13,15,16...22
        return 15
    if(no is closer to 30)   // in this case no can be 23 to 37
        return 30
    and so on...

}

4 个答案:

答案 0 :(得分:7)

function getCloser(a, b) {
    b = b || 15;
    return Math.round(a / b) * b;
}

答案 1 :(得分:1)

我怀疑你可以用这个(未经测试的)功能来做到这一点:

function getCloser(n)
   {
       return 15*(Math.round(n/15))
   }

这除以十五和向上/向下舍入,因此对于7它是7/15四舍五入为0 - > 0但是对于8舍入为1,这乘以十五给出了更接近的数字。

答案 2 :(得分:1)

function getCloser(no){
    return  Math.round(no/gap) * gap ;  
}


var gap = 15;
var str = getCloser(9) + "--" + getCloser(5) + "--" + getCloser(24) ;
alert(str);

http://jsfiddle.net/eRCjd/1/

答案 3 :(得分:0)

应该相当简单:

function getCloser (n, o) { 
    return (Math.round(n/o) * o);
}

请参阅此处http://jsfiddle.net/bnPHL/