我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
我想把一个数格式化为两位数。这个问题是在传递0-9时引起的,所以我需要将它格式化为00-09。
JavaScript中有数字格式化器吗?
当前回答
("0" + (date.getMonth() + 1)).slice(-2);
("0" + (date.getDay())).slice(-2);
其他回答
这是我发现的最简单的解决方法:-
let num = 9; // any number between 0 & 99
let result = ( '0' + num ).substr( -2 );
这里有一个非常简单的解决方法,对我来说很有效。
首先声明一个变量来保存你的号码。
var number;
现在将数字转换为字符串,并将其保存在另一个变量中;
var numberStr = number.toString();
现在你可以测试这个字符串的长度,如果它小于你想要的长度,你可以在开头追加一个' 0 '。
if(numberStr.length < 2){
number = '0' + number;
}
现在根据需要使用数字
console.log(number);
这是一个老问题,但我想补充一下。在现代浏览器中,你可以使用repeat来简化正数格式:
('0'.repeat(digits - 1) + num).substr(-digits)
如果你想要支持IE并且知道最大数字数(例如,10位):
('000000000' + num).substr(-digits)
对于负整数:
(num < 0 ? '-' : '') + ('000000000' + Math.abs(num)).substr(-digits)
对于正数显式使用+:
['-', '', '+'][Math.sign(num) + 1] + ('000000000' + Math.abs(num)).substr(-digits)
编辑(2021):
不再需要像这样手工格式化数字了。这个答案写在很久以前——在遥远的2011年,那时IE很重要,巴别塔和捆绑器只是一个美好的、充满希望的梦想。
我认为删除这个答案是错误的;然而,如果你发现自己在这里,我想把你的注意力转移到这个问题的投票第二高的答案。
它将向您介绍使用. tolocalestring()与选项参数{minimumIntegerDigits: 2}。令人兴奋的东西。下面我用这个方法从我最初的答案中重新创建了所有三个例子,以方便你。
[7, 7.5, -7.2345].forEach(myNumber => { let formattedNumber = myNumber.toLocaleString('en-US', { 最小整数位数:2, 使用分组:假 }) console.log( '输入: ' + 我的号码 + '\n' + '输出: ' + 格式化数字 ) })
最初的回答:
我发现的最好的方法是这样的:
(注意,这个简单版本只适用于正整数)
var myNumber = 7; var formattedNumber = (“0” + myNumber).slice(-2); 控制台.log(格式化编号);
对于小数,您可以使用这个代码(尽管它有点草率)。
var myNumber = 7.5; var dec = myNumber - Math.floor(myNumber); 我的号码 = 我的号码 - 十进制; var formattedNumber = (“0” + myNumber).slice(-2) + dec.toString().substr(1); 控制台.log(格式化编号);
最后,如果必须处理负数的可能性,最好存储符号,将格式应用于数字的绝对值,并在事后重新应用符号。注意,此方法没有将数字限制为2位。相反,它只限制小数左边的数字(整数部分)。(决定符号的线在这里找到)。
var myNumber = -7.2345; var 符号 = myNumber?myNumber<0?-1:1:0; 我的号码 = 我的号码 * 符号 + '';穷人的绝对价值 var dec = myNumber.match(/\.\d+$/); var int = myNumber.match(/^[^\.]+/); var 格式化数字 = (符号 < 0 ?'-' : '') + (“0” + int).slice(-2) + (dec !== null ? dec : ''); 控制台.log(格式化编号);
我的版本:
`${Math.trunc(num / 10)}${Math.trunc(num % 10)}`;
const func = (num) => '${Math.trunc(num / 10)}${Math.trunc(num % 10)}'; 常量数 = [1, 3, 5, 6, 8, 9, 10, 20, 56, 80]; nums.forEach(num => console.log(func(num)));