我猜这更多是一个数学问题,但是当您将双精度数除以1时,为什么它也会返回小数点呢?
例如,123.23 % 1
等于0.23
。
它不应该只返回0
吗?
MSDN参考资料说模块执行此ex - (x / y) * y
,其中x
是除数,为什么是除法器,如果这样计算,它将返回0。
那么,告诉我它怎么也返回小数点呢?
最佳答案
您不只是将其除以1,而是要获取模数。模数返回第一个参数除以第二个参数所得的余数。
这意味着它将从输入中减去最高的完整除法器,然后返回余数。在你的情况下
123.23-123 = 0.23
因为123可以除以1而不会“剩下任何东西”。剩下的就是您遇到的0.23。
模运算符在许多情况下都很方便。两个非常常见的是:
检查偶数/奇数
如果您有一个整数并且取模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
关于c# - 双除以1,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32034154/