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