飞镖:可以加2,但不能加1



我正在DartPad中测试这个片段:

import 'dart:math';
void main() {
  int ov = pow(2, 53);
  ov = ov + 0;
  print('$ov');
  ov = ov + 1;
  print('$ov');
  ov = ov + 2;
  print('$ov');
}

我是Dart的新手。我试图溢出变量,但显然 Dart 具有任意的优先级整数。输出有点令人惊讶:

9007199254740992
9007199254740992
9007199254740994

为什么我可以添加 2 但添加 1 没有任何效果?

如果你想检查它,这是垫子。

当 dart 编译为 JS 时,它会中继 num 的 JS 数字类型(intdouble(。如果您在JS控制台中尝试相同的操作,您将获得相同的结果:

> Math.pow(2, 53)
9007199254740992
> Math.pow(2, 53) + 1
9007199254740992
> Math.pow(2, 53) + 2
9007199254740994

相关内容

  • 没有找到相关文章

最新更新