Javascript 安全整数计数器,在达到最大安全整数时立即换行?

Javascript 安全整数计数器,在达到最大安全整数时立即换行?,javascript,Javascript,我想在我的程序中实现一个计数器,每次调用递增一个数字 尽管Number.MAX\u SAFE\u INTEGER是一个非常大的数字,但我不喜欢在程序中使用“定时炸弹”的想法 这是一个真正的问题,还是这个数字足够大,以至于当达到number.MAX\u SAFE\u INTEGER时,我不应该费心实现一个环绕的函数 function incrementWithWrapAround(n) { if(n === 9007199254740991) { // Number.MAX_SAFE_INTE

我想在我的程序中实现一个计数器,每次调用递增一个数字

尽管
Number.MAX\u SAFE\u INTEGER
是一个非常大的数字,但我不喜欢在程序中使用“定时炸弹”的想法

这是一个真正的问题,还是这个数字足够大,以至于当达到
number.MAX\u SAFE\u INTEGER
时,我不应该费心实现一个环绕的函数

function incrementWithWrapAround(n) {
  if(n === 9007199254740991) { // Number.MAX_SAFE_INTEGER
    return 0;
  }

  return ++n;
}

如果每秒勾选100万次,则需要285年以上的时间才能达到该值。@zerkms,但如果初始值为
9007199254740991-1
,则您的问题必须对初始状态进行一些澄清。顺便说一句,您当前的代码不会增加任何内容。PS:甚至是
n+1
,因为它更清楚地表达了您的意图。@Me.Name之后它不会增加。这不是比较,而是精度问题。没有足够的位来表示可区分的数字,因此计数器基本上会保持相同的值。如果每秒勾选100万次,则需要285年以上的时间才能达到该值。@zerkms,但是如果初始值是
9007199254740991-1
,那么您的问题必须对初始状态进行一些澄清。顺便说一句,您当前的代码不会增加任何内容。PS:甚至是
n+1
,因为它更清楚地表达了您的意图。@Me.Name之后它不会增加。这不是比较,而是精度问题。没有足够的位来表示可区分的数字,因此计数器基本上会保持相同的值。