【发布时间】:2018-04-01 22:37:21
【问题描述】:
我有这行简单的代码,显示为余数5:
Console.WriteLine(5 % 8);
% 运算符显示第一个数字和第二个数字相除后的余数。所以,5 / 8 = 0,625。上面代码的提醒不应该是6而不是5吗?为什么我在 Visual Studio 中测试时看到 5?
【问题讨论】:
-
如果将 5 除以 8,则商为 0,余数为 5;就是这样。
-
您对“模”的含义感到困惑,仅此而已。这并不意味着“做浮点除法,乘以十,然后截断”。
-
余数不应该是6吗?请进一步解释您所说的“困惑”是什么意思。
-
@BurreIfort 执行这段代码并查看结果——或者只是谷歌“整数除法余数”这个短语——
Enumerable.Range(1, 20).Select(n => $"{n} % 8 == {n % 8}").ToList()。您不能为数学术语制定自己的新颖定义,并期望 .NET 框架会根据您的需要进行更改。那样不行。 -
5 / 8 in integer 除法为零。五减零就是五。结果减去左边的操作数(分子)是余数。在浮点除法中没有余数;什么都没有了。