这个问题只是为了好奇.
通过控制台
parseInt(1111111111111111,2) // 16 1's
Run Code Online (Sandbox Code Playgroud)
回报
65535
Run Code Online (Sandbox Code Playgroud)
和
parseInt(11111111111111111,2) // 17 1's
Run Code Online (Sandbox Code Playgroud)
回报
65535
Run Code Online (Sandbox Code Playgroud)
也
// 16 1's 17 1's
if(parseInt(1111111111111111,2) === parseInt(11111111111111111,2))
Run Code Online (Sandbox Code Playgroud)
回报
true
Run Code Online (Sandbox Code Playgroud)
诀窍在哪里?
谢谢
11111111111111111 是一个数字的十进制数字,对于Javascript来说太大而无法精确编码.
parseInt(, 2)将停止在第一个不是1或没有的字符0,因此一旦精度降低就会停止解析.
将其更改为字符串,你会没事的.
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |