这个问题纯属好奇。
通过控制台
parseInt(1111111111111111,2) // 16 1's
返回
65535
和
parseInt(11111111111111111,2) // 17 1's
返回
65535
还有
// 16 1's 17 1's
if(parseInt(1111111111111111,2) === parseInt(11111111111111111,2))
返回
true
诀窍在哪里?
谢谢
最佳答案
11111111111111111
是十进制数字字面值,表示对于 Javascript 而言太大而无法精确编码的数字。
parseInt(, 2)
将在第一个不是 1
或 0
的字符处停止,因此一旦精度达到就停止解析降解。
将其更改为字符串即可。
关于javascript - 为什么这是真的 : parseInt(1111111111111111, 2) === parseInt(11111111111111111,2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29479214/