tyo*_*213 4 javascript precision safari google-chrome
如果你在chrome或safari中键入78764357878563812,那么你就得到了
如果你这样做
for(var i = 0; i < 30; i++){console.log(i + " == " + 78764357878563800 + " ? ");console.log((78764357878563790+i) == 78764357878563800);}
Run Code Online (Sandbox Code Playgroud)
你开始比较从78764357878563790到78764357878563790 + 29的值,所以...就像你看到你运行它,你从i = 8到24得到真实.
所以我不知道我是不是得到它,但不应该存在maxint(我不知道)和maxint-1 ??? 然后最大不同于maxint-1?
我想这是精确的像浮动数字...但是,这不应该只是命中浮动数字,例如数字+ 1总是给成功者?(所以在上面的例子中,如果i = 78764357878563790并添加i ++,那么你进入一个无限循环.
我事先知道,对于浮点,数字之间存在这种类型的间距,但是从未遇到整数不能表示i + 1和i-1的情况(我总是认为无符号maxint + 1会携带并给出0).
任何建议:
| 归档时间: |
|
| 查看次数: |
2466 次 |
| 最近记录: |