use*_*347 6 .net c# floating-point modulo
我试图找出浮点数据类型的简单模数运算.
float a=3.14f;
float b=10f;
result=a%b;
Run Code Online (Sandbox Code Playgroud)
我得到结果= 3.14
使用十进制数据类型的另一示例
decimal p=10;
decimal q=40;
result=p%q;
Run Code Online (Sandbox Code Playgroud)
得到答案= 20.
我不明白模数是如何工作的?
Ale*_*exC 11
从C#语言规范中浮点余数.在x % yif x和y是正有限值的情况下.
z是和的结果,x % y计算为x – n * y,其中n是小于或等于的最大可能整数x / y.
C#语言规范还清楚地概述了如何处理非零有限值,零,无穷大和NaN的所有可能组合的情况,其中浮点值可能出现x%y.
Run Code Online (Sandbox Code Playgroud)y value | +y –y +0 –0 +? –? NaN -----+---------------------------- x +x | +z +z NaN NaN x x NaN –x | –z –z NaN NaN –x –x NaN v +0 | +0 +0 NaN NaN +0 +0 NaN a –0 | –0 –0 NaN NaN –0 –0 NaN l +? | NaN NaN NaN NaN NaN NaN NaN u –? | NaN NaN NaN NaN NaN NaN NaN e NaN | NaN NaN NaN NaN NaN NaN NaN
msdn 上的这篇文章有足够的例子,但我可以很快解释它;
http://msdn.microsoft.com/en-us/library/0w4e0fzs.aspx
如果您执行以下操作int result = x % y;,您会发现返回的是 的余数,x % y并且这些值更像是整数。例如,链接中的第三行是Console.WriteLine(5.0 % 2.2);打印.6. 这是因为它发现 2.2 最多只能进入 5.0 两次。所以它做 5 - 2.2(2) 即 0.6
| 归档时间: |
|
| 查看次数: |
15947 次 |
| 最近记录: |