我想将数字格式化为两位数。该问题是在0– 9通过时引起的,因此我需要将其格式化为00– 09。
0
9
00
09
JavaScript中有数字格式化程序吗?
我发现的最好方法是如下所示:
(请注意,此简单版本仅适用于正整数)
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);