Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 为什么从负数的模运算中得到不正确的输出_Flutter_Dart - Fatal编程技术网

Flutter 为什么从负数的模运算中得到不正确的输出

Flutter 为什么从负数的模运算中得到不正确的输出,flutter,dart,Flutter,Dart,我在Dart上试过这个代码:我得到28.5分 void main() { double modulo = -1.5 % 30.0; print(modulo); } Javascript中的相同代码返回-1.5 let模=-1.5%30; console.log(模)各州的文件(重点): 返回欧氏除法的剩余部分。两个整数a和b的欧几里德除法产生两个整数q和r,因此a==b*q+r和0An不久前在dart-lang报告中提出了这一点。很明显,dart中的%符号是“欧几里德模运算符,而不

我在Dart上试过这个代码:我得到28.5分

void main() {
  double modulo = -1.5 % 30.0;
  print(modulo);
}
Javascript中的相同代码返回-1.5

let模=-1.5%30;
console.log(模)各州的文件(重点):

返回欧氏除法的剩余部分。两个整数
a
b
的欧几里德除法产生两个整数
q
r
,因此
a==b*q+r
0An不久前在dart-lang报告中提出了这一点。很明显,dart中的
%
符号是“欧几里德模运算符,而不是余数”

与你正在尝试做的事情相同的事情可以通过

(-1.5).余数(30.0)

judta idea:如果添加括号(除了减号以外的所有括号),会发生什么?我的第一个猜测是js有-(n%m)而dart有(-n)%mIt即使在同一种语言中也不总是一致的。“在C89(和历史K&R实现)中,负操作数的余数运算符的含义是实现定义的。此行为在C99中已更改,而更改仍保留在C11中。”在Python和数学中
-1.5%30=28.5
。看见