Dart:可以加 2 但不能加 1
Dart: able to add 2 but not 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却没有任何效果?
这里是the pad如果你想检查它。
当 dart 被编译成 JS 时,它依赖于 num 的 JS 数字类型(int 或 double).如果您在 JS 控制台中尝试相同的操作,您将得到相同的结果:
> Math.pow(2, 53)
9007199254740992
> Math.pow(2, 53) + 1
9007199254740992
> Math.pow(2, 53) + 2
9007199254740994
我正在 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却没有任何效果?
这里是the pad如果你想检查它。
当 dart 被编译成 JS 时,它依赖于 num 的 JS 数字类型(int 或 double).如果您在 JS 控制台中尝试相同的操作,您将得到相同的结果:
> Math.pow(2, 53)
9007199254740992
> Math.pow(2, 53) + 1
9007199254740992
> Math.pow(2, 53) + 2
9007199254740994