双除以 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
我想这更像是一道数学题,但是当你用双精度数除以 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