JS 将数值取整为10的倍数

限于喜欢 提交于 2019-12-01 13:22:23

问题描述:

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

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

 

解决方案:

/**
 * 将数字取整为10的倍数
 * @param {Number} num 需要取整的值
 * @param {Boolean} ceil 是否向上取整
 * @param {Number} prec 保留多少位(从左到右)
 */
const formatInt = (num, ceil = true, prec = 2) => {
  const len = String(num).length;
  if (len < prec) { return }; 

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

// formatInt(2345, true, 2)  -> 2400
// formatInt(2345, false, 2) -> 2300
// formatInt(2345, true, 1)  -> 3000
// formatInt(2345, false, 1) -> 2000

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!