如果你这样做
for(var i = 0; i < 30; i++){console.log(i + " == " + 78764357878563800 + " ? ");console.log((78764357878563790+i) == 78764357878563800);}
你开始比较 78764357878563790 和 78764357878563790+29 之间的值,所以......就像你看到如果你运行它一样,你会从 i = 8 到 24。
所以我不知道我是否不明白,但不应该存在 maxint(我不知道)和 maxint-1 ???然后 max 与 maxint-1 不同?
我想这就像浮点数一样精度......但这不应该只命中浮点数,例如,数字+1总是给后继者?(所以在上面的例子中,如果 i = 78764357878563790 并加上 i++,那么你就进入了一个无限循环。
我事先知道浮点数存在这种类型的数字间距,但从来没有遇到过整数也不能表示 i+1 和 i-1 的情况(我一直认为 unsigned maxint + 1 会进位并给出 0)。
任何建议:
- 这是最大数量,什么是js中的前数。
- 如何处理或知道整数的这种行为何时开始发生。
- 如何处理这个大数字和比这更大的数字会很好。