Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将一个起始处为零的整数(如00111)转换为其等效字符串';00111';?_Javascript - Fatal编程技术网

Javascript 如何将一个起始处为零的整数(如00111)转换为其等效字符串';00111';?

Javascript 如何将一个起始处为零的整数(如00111)转换为其等效字符串';00111';?,javascript,Javascript,例如,如果我有以下javascript代码: let num = 00111; console.log(num.toString()); 这会给我'73' 然而,我想要的是“00111”为什么这个数字不像您期望的那样,因为整数文本中的前导0告诉Javascript这个数字是一个八进制文本,一个基数为8的整数 要获得所需内容,您可以从文本中删除前导零,然后稍后再添加它们: let num = 111; console.log('00' + num.toString()); 或者,您可以将值存储

例如,如果我有以下javascript代码:

let num = 00111;
console.log(num.toString());
这会给我'73'


然而,我想要的是“00111”

为什么这个数字不像您期望的那样,因为整数文本中的前导0告诉Javascript这个数字是一个八进制文本,一个基数为8的整数

要获得所需内容,您可以从文本中删除前导零,然后稍后再添加它们:

let num = 111;
console.log('00' + num.toString());
或者,您可以将值存储为字符串,并对其进行解析:

let value = '00111':
let num = parseInt(value);  // assumes radix 10.
console.log('00' + num.toString());
如果目标仅仅是计算由1s表示的位(这将解释示例中的“3”),则可以编写一个助手函数来计算字符串中1s的数量,然后使用该函数提取值,就像前面所做的那样

如果目标是文本二进制数(7,而不是3),则可以使用二进制文本:

let num = 0b00111;
console.log(num);   // 7
console.log(num.toString(2));   // 111

为什么这个数字不像您预期的那样,是因为整数文本中的前导0告诉Javascript这个数字是一个八进制文本,一个基数为8的整数

要获得所需内容,您可以从文本中删除前导零,然后稍后再添加它们:

let num = 111;
console.log('00' + num.toString());
或者,您可以将值存储为字符串,并对其进行解析:

let value = '00111':
let num = parseInt(value);  // assumes radix 10.
console.log('00' + num.toString());
如果目标仅仅是计算由1s表示的位(这将解释示例中的“3”),则可以编写一个助手函数来计算字符串中1s的数量,然后使用该函数提取值,就像前面所做的那样

如果目标是文本二进制数(7,而不是3),则可以使用二进制文本:

let num = 0b00111;
console.log(num);   // 7
console.log(num.toString(2));   // 111
具有一个基数参数,可将字符串转换为该基数中的任何数字

因此,如果要将数字转换为JavaScript八进制表示法的字符串值,可以执行以下操作:

let num=00111;
设str=`00${num.toString(8)}`;
console.log(str)有一个基数参数,可将字符串转换为该基数中的任何数字

因此,如果要将数字转换为JavaScript八进制表示法的字符串值,可以执行以下操作:

let num=00111;
设str=`00${num.toString(8)}`;

console.log(str)你可以做
让num='00111'
console.log(num+“”)
@Martijn问题是八进制文字,但是,数字在内部表示为二进制浮点值;实际表示中没有前导零。你要寻找的是一种将数值格式化为字符串的方法。Alexander是对的,int中的前导0不是整数,因此需要将其定义为字符串,否则在获得它之前会进行转换。它是整数,只是基数为8,而不是10。Javascript只支持不带小数点的八进制文字,因此
0111.0
(引发错误)不同于
0111
console.log(num+“”)
@Martijn问题是八进制文字,但是,数字在内部表示为二进制浮点值;实际表示中没有前导零。你要寻找的是一种将数值格式化为字符串的方法。Alexander是对的,int中的前导0不是整数,因此需要将其定义为字符串,否则在获得它之前会进行转换。它是整数,只是基数为8,而不是10。Javascript只支持不带小数点的八进制文字,因此
0111.0
(引发错误)不同于
0111