js怎么向上取整保留两位

Math.ceil(6.008) => 6 怎么取整为 6.01

阅读 5.4k
2 个回答
function ceil(num, byte){
    let n = Math.pow(10, byte)
    return Math.ceil(num * n) / n
}

ceil(6.008, 2) //6.01

没太明白你这个“向上取整”是指“进一法”?因为你给这个例子用“四舍六入五看双”或“四舍五入”也是成立的。

就先根据字面意思理解当作是“进一法”吧:

Number.prototype.toCeil = function (num = 0) {
    if (!(num >= 0 && num <= 100)) {
        throw new RangeError('toCeil() digits argument must be between 0 and 100.');
    }

    let val = Math.ceil(this * Math.pow(10, num)) / Math.pow(10, num) + '';
    if (num > 0) {
        const intp = val.split('.')[0],
            decp = val.split('.')[1] || '';
        if (decp.length < num) {
            val = intp + '.' + decp.padEnd(num, '0');
        }
    }

    return val;
}


let num1 = 6.008;
let str2 = num.toCeil(2);
console.log(str1); //6.01

let num1 = 6.001;
let str2 = num.toCeil(2);
console.log(str2); //6.01
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题