有问题!为什么这段代码:
let number = 6063311135418901680;
let binary = parseInt(number, 10).toString(2);
console.log(binary);
返回101010000100101001101010101101001010101010100000110010000000000
而不是0101010000100101001101010101101001010101010100000110010010110000
(假设是正确答案)?我尝试将十进制转换为二进制,但也许我没有得到正确的方法。我知道有很多关于数字的信息,但没有找到任何帮助我。
答案 0 :(得分:1)
0101010000100101001101010101101001010101010100000110010010110000
不能代表"数字"的变量。在Javascript中有两个原因:
这些限制背后的原因是数字存储为IEEE754 double precision floating point numbers。如果您需要更大的整数,请将它们保留为字符串或使用大数字库。