欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS 将数值取整为10的倍数

程序员文章站 2022-04-21 15:37:33
问题描述: 将数值处理为 10 的倍数,并支持向上或者向下取整 如将 2345 可以处理为 2300 | 2400 | 3000 | 2000 解决方案: ......

问题描述:

将数值处理为 10 的倍数,并支持向上或者向下取整

如将 2345 可以处理为 2300 | 2400 | 3000 | 2000

 

解决方案:

/**
 * 将数字取整为10的倍数
 * @param {number} num 需要取整的值
 * @param {boolean} ceil 是否向上取整
 * @param {number} prec 需要用0占位的数量
 */
const formatint = (num, prec = 2, ceil = true) => {
  const len = string(num).length;
  if (len <= prec) { return num }; 

  const mult = math.pow(10, prec);
  return ceil ? 
    math.ceil(num / mult) * mult : 
    math.floor(num / mult) * mult;
} 

// formatint(2345, 2, true)  -> 2400
// formatint(2345, 2. false) -> 2300
// formatint(2345, 3, true)  -> 3000
// formatint(2345, 3, false) -> 2000