Math.ceil(6.008) => 6 怎么取整为 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
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决