javascript - 为什么我使用相同的代码得到不同的结果?

标签 javascript dart

我在js代码后写了一些dart代码,但有问题,希望有人能帮助我/

js代码:

var max = 0x80000000;
var data = -2000;
var mod = data % max;

mod值为-2000

Dart 代码:

var max = 0x80000000;
var data = -2000;
var mod = data % max;

mod值为2147481648

为什么?

最佳答案

因为 JavaScript 和 Dart 是不同的语言,具有不同的运算符规范。

Dart 规定余数运算结果总是正数:

https://api.dart.dev/stable/2.10.4/dart-core/num/operator_modulo.html

在 JavaScript 中余数可以是负数,结果的符号等于被除数的符号:

https://www.ecma-international.org/ecma-262/11.0/index.html#sec-numeric-types-number-remainder

关于javascript - 为什么我使用相同的代码得到不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64911104/

相关文章:

javascript - Angular ng-click 给出语法错误 : Token '{' invalid key at column 22 of the expression

javascript - 如何在 cypress 中获取复制到剪贴板的内容

Dart:无法推断函数文字的类型,因为文字有一个 block 作为它的主体

dart - 如何在组中创建 ListView?

css - 为什么我的窗口小部件不在屏幕中央?

javascript - 如何自动找出我的网站上哪些 jQuery 选择器运行缓慢?有这个插件吗?

javascript - 鼠标悬停和鼠标高度上的图像叠加?

javascript - 创建带有提示的网页

flutter - 如何使ListView CrossAxisAlignment包装内容?

Flutter - 仅展开展开高度