代码之家  ›  专栏  ›  技术社区  ›  Abk

如何将零前导数字(pin)正确转换为字符串[重复]

  •  1
  • Abk  · 技术社区  · 6 年前

    这个问题已经有了答案:

    如何将007514012900等数字转换成字符串?

    我怎么得到 pinToStr 返回 '0746' 是吗?

    //incorrect output
    var pin = 0746;
    var pinToStr = pin.toString()
    console.log(pinToStr); //486
    
    
    //correct output
    var pin1 = 7460;
    var pinToStr1 = pin1.toString()
    console.log(pinToStr1); //7460
    

    //incorrect output
    
    let pin = 0746;
    let pinToStr = pin.toString()
    console.log(pinToStr); //486
    
    //correct output
    let pin1 = 7460;
    let pinToStr1 = pin1.toString()
    console.log(pinToStr1); //7460
    2 回复  |  直到 6 年前
        1
  •  3
  •   lumio    6 年前

    在javascript中,当您用前导零开始一个数字时,它应该是一个八进制数字(以8为基数)。这就是为什么0746(八进制)实际上是486(十进制)。

    为了验证我的假设,这里有一个小例子:

    010 === 8 // true
    

    你真正想做的是从一开始就把这个数字写成一个字符串。

    var pin = '0746';
    console.log(pin); // 0746
    
        2
  •  2
  •   Dennis Lukas    6 年前

    问题是你在存储整数,不能有前面的零。首先将它们保存为字符串。

    var pin1 = "7460";
    console.log(pin1); //7460