我在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/