我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。

JavaScript中有数字格式化器吗?


当前回答

这里有一个非常简单的解决方法,对我来说很有效。

首先声明一个变量来保存你的号码。

var number;

现在将数字转换为字符串,并将其保存在另一个变量中;

var numberStr = number.toString();

现在你可以测试这个字符串的长度,如果它小于你想要的长度,你可以在开头追加一个' 0 '。

if(numberStr.length < 2){
      number = '0' + number;
}

现在根据需要使用数字

console.log(number);

其他回答

这是我发现的最简单的解决方法:-

let num = 9; // any number between 0 & 99
let result = ( '0' + num ).substr( -2 );

我的例子是这样的

         var n =9;
         var checkval=('00'+n).slice(-2);
         console.log(checkval)

输出是09

使用这个函数,你可以打印任意n个数字

function frmtDigit(num, n) {
    isMinus = num < 0;
    if (isMinus)
        num *= -1;
    digit = '';
    if (typeof n == 'undefined')
        n = 2;//two digits
    for (i = 1; i < n; i++) {
        if (num < (1 + Array(i + 1).join("0")))
            digit += '0';
    }
    digit = (isMinus ? '-' : '') + digit + num;
    return digit;
};

如果您的项目中没有lodash,那么仅仅为了使用一个函数而添加整个库将是一种过度。这是我见过的最复杂的解决你问题的方法。

_.padStart(num, 2, '0')

您也可以使用Intl一个ECMAScript国际API,它可以像这样简单地自定义您的号码

let Number= Intl.NumberFormat('en-US', {
  minimumIntegerDigits: 2,
  minimumFractionDigits: 2
});

console.log(Number.format(2));
//02.00

和许多具有Intl的嵌入式函数,你可以放一个前缀符号,符号和货币格式等文档,只需点击这里