双除以 1

Double divided by 1

我想这更像是一道数学题,但是当你用双精度数除以 1 时,为什么 return 小数点也是?

例如,123.23 % 1等于0.23

不应该 return 只有 0 吗?

MSDN 参考资料说该模块执行此操作 ex - (x / y) * y,其中 x 是股息,为什么是除法器,如果您这样计算它应该 return 0.

所以告诉我怎么会 return 小数点也是?

你不是简单地除以 1,你是在取模。模数 returns 第一个参数除以第二个参数的余数。

这意味着它从输入中减去最高的完整除法器和 returns 余数。在你的情况下是

123.23 - 123 = 0.23

因为 123 可以被 1 除而不用 "anything left"。剩下的就是你体验到的0.23。

模运算符在很多情况下都很方便。两个非常常见的是:

正在检查 Even/Odd 个数字
如果您有一个整数并取模 2,则结果为奇数为 1,偶数为 0。

正在检查第 n 次迭代
如果你有一个循环并说你想每 10 次迭代打印一个结果,你可以有一个连续的计数器并使用像

这样的代码
if (Counter % 10 == 0) then { 
    Console.WriteLine("Tick Tock"); 
}

有关更多示例,请参阅 MSDN:https://msdn.microsoft.com/de-de/library/0w4e0fzs.aspx?f=255&MSPPError=-2147217396