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。

等等…

我该怎么做呢?

5 Solutions collect form web for “Javascript:舍入到5的下一个倍数”

这将做的工作:

 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; } 

也许?

  • 按螺旋顺序打印二维数组
  • 编程是math的一个子集?
  • 实施射线拾取
  • Mathematica一次评估expression式,然后返回未评估的expression式
  • 检查数字是否是最好的algorithm最好的algorithm是什么?
  • 如何使scipy.interpolate给出超出input范围的外推结果?
  • WebGL和ThreeJS中改进的区域照明
  • 什么是一个圈出来的意思?
  • MathML和Java
  • 在JavaScript中将string评估为mathexpression式
  • 为graphics的Y轴select一个有吸引力的线性比例尺