Javascript 如何将前零数字(PIN)正确转换为字符串

Javascript 如何将前零数字(PIN)正确转换为字符串,javascript,tostring,Javascript,Tostring,如何将0075140129,00等数字转换为字符串 如何让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 //输出不正确 让

如何将0075140129,00等数字转换为字符串

如何让
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
//输出不正确
让销=0746;
设pinToStr=pin.toString()
控制台日志(pinToStr)//486
//正确输出
设pin1=7460;
设pinToStr1=pin1.toString()

控制台日志(pinToStr1)//7460
问题在于,您存储的是整数,而整数前面不能有零。首先将它们另存为字符串

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

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

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

在JavaScript中,当您以前导零开始一个数字时,它意味着是一个八进制(以8为基数)的数字。这就是0746(八进制)实际上是486(十进制)的原因

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

010 === 8 // true
你真正想做的是从一开始就把这个数字写成一个字符串

var pin = '0746';
console.log(pin); // 0746

在JavaScript中,当您以前导零开始一个数字时,它意味着是一个八进制(以8为基数)的数字。这就是0746(八进制)实际上是486(十进制)的原因

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

010 === 8 // true
你真正想做的是从一开始就把这个数字写成一个字符串

var pin = '0746';
console.log(pin); // 0746

您可以尝试->
var pin=746;console.log(('0000'+pin.toString()).slice(-4))
更好的问题是为什么要将pin存储为一个数字?当
pin
将其值分配给
0746
时,它是一个数字。根据定义,数字没有前导零,否则你会停在哪里?您要做的是用零填充数字,以创建一个4个字符长的字符串。
//输出不正确
-不,首先输入不正确。结果是486,因为您“输入”的数字在八进制系统中,因为在JavaScript中前导零就是这个意思@米索鲁德,谢谢你提供的信息。现在我知道你可以试试-->
var pin=746;console.log(('0000'+pin.toString()).slice(-4))
更好的问题是为什么要将pin存储为一个数字?当
pin
将其值分配给
0746
时,它是一个数字。根据定义,数字没有前导零,否则你会停在哪里?您要做的是用零填充数字,以创建一个4个字符长的字符串。
//输出不正确
-不,首先输入不正确。结果是486,因为您“输入”的数字在八进制系统中,因为在JavaScript中前导零就是这个意思@米索鲁德,谢谢你提供的信息。现在我知道了,跟着OP的号码走。现在,不需要存储为字符串。请按照OP拥有的数字进行操作。现在,不需要存储为字符串。谢谢。现在我明白了,谢谢。现在我明白了