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

Preserve leading 0 when number is one digit

本文关键字:保留 一位 数字      更新时间:2023-09-26

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

所以,如果给定的数字是9,那么将其打印为09。我申请的是:

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

以及对其应用parseInt()方法,但每次前导零都会闪烁。

在javascript中,整数(Number)不能有前导零。如果你想要一个前导零,你应该把它表示为一个字符串。

parseInt('01', 10); // 1
parseFloat('01'); // 1
parseInt(01, 10); // 1

一个有用的函数,用于为转换为字符串的数字添加填充。请随意将其放在您自己的utils或其他辅助工具带中。填充快乐!

 /**
 * 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

您必须将其转换为字符串,因为数字用前导零没有意义。

因此,您必须将数字打印为:

if (no < 10) {
    console.log("0" + no);
}

若为no = 8,则结果为"08"

首先,始终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)