一尘不染

如何通过在数字前加0来格式化数字?

javascript

我想将数字格式化为两位数。该问题是在09通过时引起的,因此我需要将其格式化为0009

JavaScript中有数字格式化程序吗?


阅读 345

收藏
2020-05-01

共1个答案

一尘不染

我发现的最好方法是如下所示:

(请注意,此简单版本仅适用于正整数)

var myNumber = 7;

var formattedNumber = ("0" + myNumber).slice(-2);

console.log(formattedNumber);

对于小数,您可以使用此代码(尽管有点草率)。

var myNumber = 7.5;

var dec = myNumber - Math.floor(myNumber);

myNumber = myNumber - dec;

var formattedNumber = ("0" + myNumber).slice(-2) + dec.toString().substr(1);

console.log(formattedNumber);

最后,如果您必须处理负数的可能性,则最好存储符号,将格式化应用于数字的绝对值,然后在事实之后重新应用符号。请注意,此方法并不将数字限制为2位数字。而是仅将数字限制在小数点(整数部分)的左侧。

var myNumber = -7.2345;

var sign = myNumber?myNumber<0?-1:1:0;

myNumber = myNumber * sign + ''; // poor man's absolute value

var dec = myNumber.match(/\.\d+$/);

var int = myNumber.match(/^[^\.]+/);



var formattedNumber = (sign < 0 ? '-' : '') + ("0" + int).slice(-2) + (dec !== null ? dec : '');

console.log(formattedNumber);
2020-05-01