Javascript:舍入到5的下一个倍数

我需要一个实用函数,它取整数值(长度范围从2到5个数字),取整到5的下一个倍数,而不是5的最接近的倍数。下面是我得到的:

function round5(x) { return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5; } 

当我跑步round5(32) ,它给了我30 ,我想要35。
当我跑步round5(37) ,它给了我35 ,我想要40。

当我跑步round5(132) ,它给了我130 ,我想要135。
当我跑round5(137) ,它给了我135 ,我想要140。

等等…

我该怎么做呢?

这将做的工作:

 function round5(x) { return Math.ceil(x/5)*5; } 

这只是普通舍入numberx函数Math.round(number/x)*x最接近的倍数的变体,但是使用.ceil而不是.round使得它总是按照math规则向上舍入,而不是向下/向上舍入。

喜欢这个?

 function roundup5(x) { return (x%5)?xx%5+5:x } 
 voici 2 solutions possibles : y= (x % 10==0) ? x : xx%5 +5; //......... 15 => 20 ; 37 => 40 ; 41 => 45 ; 20 => 20 ; z= (x % 5==0) ? x : xx%5 +5; //......... 15 => 15 ; 37 => 40 ; 41 => 45 ; 20 => 20 ; 

问候保罗

我在寻找类似的东西的时候到了这里。 如果我的数字是-0,-1,-2,它应该落到-0,如果它是-3,-4,-5,它应该是-5。

我想出了这个解决scheme:

 function round(x) { return x%5<3 ? (x%5===0 ? x : Math.floor(x/5)*5) : Math.ceil(x/5)*5 } 

而testing:

 for (var x=40; x<51; x++) { console.log(x+"=>", x%5<3 ? (x%5===0 ? x : Math.floor(x/5)*5) : Math.ceil(x/5)*5) } // 40 => 40 // 41 => 40 // 42 => 40 // 43 => 45 // 44 => 45 // 45 => 45 // 46 => 45 // 47 => 45 // 48 => 50 // 49 => 50 // 50 => 50 
 if( x % 5 == 0 ) { return int( Math.floor( x / 5 ) ) * 5; } else { return ( int( Math.floor( x / 5 ) ) * 5 ) + 5; } 

也许?