Microsoft Mathematics 和 Google 的计算器为 -2 % 360 给出了 358,但 C# 和 Windows 计算器输出的是 -2 ...这是正确答案吗?
最佳答案
C# 编译器根据 C# 规范做正确的事情,该规范规定对于整数:
The result of
x % y
is the value produced byx – (x / y) * y
.
请注意 (x/y)
总是舍入 towards zero 。
有关如何计算二进制和十进制 float 的余数的详细信息,请参阅规范的第 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/