Javascript 如何将一个起始处为零的整数(如00111)转换为其等效字符串';00111';?
例如,如果我有以下javascript代码: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()); 或者,您可以将值存储
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
。