当数字是一位数时,保留前导0

时间:2015-06-22 11:24:47

标签: javascript function

我在JavaScript中使用parseInt()函数,并且需要应用逻辑,就好像给定的数字小于10,然后在数字前加0。

因此,如果给定的数字是9,则将其打印为09.我申请的是:

if (no < 10) {
    no = "0" + no;
}

并在其上应用parseInt()方法,但每次前导零都是闪烁。

3 个答案:

答案 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可能会妨碍,因为它是八进制表示,而89不是有效数字。 输出不能将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)