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
13 回答12.7k 阅读
2 回答4.9k 阅读✓ 已解决
7 回答1.8k 阅读
5 回答1.3k 阅读
3 回答2.1k 阅读✓ 已解决
5 回答680 阅读
8 回答2.3k 阅读