我按照js代码写了一些dart代码,有问题,希望有人能帮助我/
js代码:
var max = 0x80000000;
var data = -2000;
var mod = data % max;
Run Code Online (Sandbox Code Playgroud)
mod 值为 -2000
飞镖代码:
var max = 0x80000000;
var data = -2000;
var mod = data % max;
Run Code Online (Sandbox Code Playgroud)
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
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |