一尘不染

如何在JavaScript中输出带有前导零的数字

javascript

我可以用math.round舍入到小数位数的x位数,但是有没有办法舍入到小数点的左边?例如,如果我指定2个位置,则5变为05


阅读 396

收藏
2020-04-25

共2个答案

一尘不染

您是否要求零填充?不是真正的舍入。您必须将其转换为字符串,因为数字对于前导零没有意义。像这样

function pad(num, size) {
    var s = num+"";
    while (s.length < size) s = "0" + s;
    return s;
}

或者,如果您知道您永远不会使用X个以上的零,那么可能会更好。这假设您永远不要超过10位数字。

function pad(num, size) {
    var s = "000000000" + num;
    return s.substr(s.length-size);
}

如果您关心负数,则必须去除“-”并读取它。

2020-04-25
一尘不染

你可以扩展Number对象:

Number.prototype.pad = function(size) {
    var s = String(this);
    while (s.length < (size || 2)) {s = "0" + s;}
    return s;
}

例子:

(9).pad();  //returns "09"

(7).pad(3);  //returns "007"
2020-04-25