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.7k 阅读
2 回答3.2k 阅读✓ 已解决
2 回答4.3k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
3 回答1.7k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答802 阅读