問題描述:
將數值處理為 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