Javascript parseInt()不';t考虑前导零,即使是基数
当我想将二进制字符串转换为以10为基数的十进制数(如:Javascript parseInt()不';t考虑前导零,即使是基数,javascript,binary,converter,base,Javascript,Binary,Converter,Base,当我想将二进制字符串转换为以10为基数的十进制数(如:parseInt('0001010',2))时,Javascript返回一个十进制数,但忽略了上面示例中提到的前导零。有没有办法解决这个问题?十进制表示法无法跟踪前导零。如果希望在结果中保留前导零,则需要一种根本不同的方法(例如,将输出保持为字符串) 或者,如果您事先知道结果的宽度,您可以在输出上用前导零填充它。因此假设您有数字“00000101101”: var number = '00000101101101'; var length =
parseInt('0001010',2)
)时,Javascript返回一个十进制数,但忽略了上面示例中提到的前导零。有没有办法解决这个问题?十进制表示法无法跟踪前导零。如果希望在结果中保留前导零,则需要一种根本不同的方法(例如,将输出保持为字符串)
或者,如果您事先知道结果的宽度,您可以在输出上用前导零填充它。因此假设您有数字“00000101101”:
var number = '00000101101101';
var length = number.length;
var decimal_number = parseInt(number, 2);
// going back
var new_number = decimal_number.toString(2);
var new_length = new_number.length;
var n_zeros = length - new_length;
var zeros = (n_zeros >= 2 ? Array(n_zeros+1).join("0") : "0");
new_number = zeros + new_number;
?? 这个例子的结果应该是数字10。你到底期望什么?@Pointy他得到了什么,事实上,这个数字的结果是ten@NPE哈哈,咖啡不够/太多:):)返回原始数字时,不会在左侧添加0。将长度存储在变量中,然后在恢复后,添加必要数量的0。当您发布答案时,我刚刚键入-+1这是正确的想法,但在JavaScript
0*n_零
中,它并没有达到代码期望的效果@那么它不是把字符串“0”n
放了很多次了吗?不,它没有<代码>*始终是数字乘法。看到我在第一条评论中添加的链接了吗?@Juhana好了,伙计们,它现在起作用了吗?我刚刚重新编辑了它