微软数学和谷歌的计算器给我358 -2%360,但C#和Windows计算器输出-2 ...这是正确的答案?
Eri*_*ert 12
根据C#规范,C#编译器正在做正确的事情,该规范指出对于整数:
结果
x % y是产生的价值x – (x / y) * y.
请注意,(x/y)始终向零舍入.
有关如何计算二进制和十进制浮点数的余数的详细信息,请参阅规范的第7.8.3节.
这是否是"正确答案"取决于您查看余数操作的方式.其余部分必须满足以下标识:
dividend = quotient * divisor + remainder
Run Code Online (Sandbox Code Playgroud)
我说清楚-2%360是-2.为什么?好吧,首先问问自己商是什么.360进入-2的次数是多少?显然是零次!360根本不会进入-2.如果商为零,那么余数必须为-2才能满足同一性.如果说360总共进入-2次-1次,剩下的就是358次,那你觉得不是很奇怪吗?