Microsoft数学和Google的计算器给我358的价格是-2%360,但是C#和Windows计算器输出的是-2 ...这是正确的答案吗?

最佳答案

C#编译器根据C#规范做了正确的事情,该规范指出整数:



请注意,(x/y)总是四舍五入towards zero

有关如何计算二进制和十进制浮点数的余数的详细信息,请参见规范的7.8.3节。

这是否是您的“正确答案”,取决于您如何查看余数运算。其余的必须满足以下身份:

dividend = quotient * divisor + remainder

我说的是-2%360显然是-2。为什么?好吧,首先问自己是什么商。 360变成-2多少次?显然是零次! 360根本不进入-2。如果商为零,则余数必须为-2才能满足恒等式。说360进入-2总共-1次,剩余358次,这是很奇怪的,您不是吗?

关于c# - 为什么-2%360在C#中给出-2而不是358,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7560267/

10-12 04:54