我在JavaScript中使用parseInt()函数,并且需要应用逻辑,就好像给定的数字小于10,然后在数字前加0。
因此,如果给定的数字是9,则将其打印为09.我申请的是:
if (no < 10) {
no = "0" + no;
}
并在其上应用parseInt()方法,但每次前导零都是闪烁。
答案 0 :(得分:2)
在javascript中,integer (Number)不能有前导零。如果你想要一个前导零,你应该把它作为一个字符串。
parseInt('01', 10); // 1
parseFloat('01'); // 1
parseInt(01, 10); // 1
用于将填充添加到转换为字符串的数字的有用函数。随意把它放在你自己的utils或其他helper-toolbelt中。快乐填充!
/**
* Add padding (leading zero's) to integer, based on minimum length
* @param {Number} integer
* @param {Number} minimal length of returned string
* @return {String} padded string
*/
function addPadding(integer, length){
var integerString = integer + '';
while (integerString.length < length) {
integerString = '0' + integerString;
}
return integerString;
}
// Output examples
addPadding(15, 3); // 015
addPadding(4, 2); // 04
addPadding(123, 2); // 123
addPadding(123, 5); // 00123
答案 1 :(得分:1)
您必须将其转换为字符串,因为数字对于前导零没有意义。
所以你必须将数字打印为:
if (no < 10) {
console.log("0" + no);
}
如果no = 8
,则结果为"08"
答案 2 :(得分:0)
首先,始终使用10
parseInt()
的基础。
其次,使用console.log()
查看您的内容:
no = parseInt(user_input, 10); // base 10
console.log(typeof no);
if (no < 10) {
no = "0" + no;
}
console.log(typeof no);
这应该在控制台输出中提供:
number
string
输入中的前导
0
可能会妨碍,因为它是八进制表示,而8
或9
不是有效数字。 输出不能将0
作为number
,因此必须保留为string
。
如果您正确地将实际数字与代码中的数字分开,则最后一点不是问题:
no_to_compute = 8; // is a number type
no_to_display = "0" + no; // ia a string type:
// representation of the number (numeral)