问题描述:
将数值处理为 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