C#Math.Round comportement有2位数

时间:2016-04-13 14:07:44

标签: c#

我已经测试了这段代码:

Console.WriteLine(Math.Round(10.4, 0));
Console.WriteLine(Math.Round(10.5, 0));
Console.WriteLine(Math.Round(10.6, 0));
Console.WriteLine(Math.Round(10.04, 1));
Console.WriteLine(Math.Round(10.05, 1));
Console.WriteLine(Math.Round(10.06, 1));

Console.WriteLine(Math.Round(10.004, 2));
Console.WriteLine(Math.Round(10.005, 2));
Console.WriteLine(Math.Round(10.006, 2));

Console.WriteLine(Math.Round(10.0004, 3));
Console.WriteLine(Math.Round(10.0005, 3));
Console.WriteLine(Math.Round(10.0006, 3));
对于Math.Round(10.005,2),

结果为10.01,而对于Math.Round(10.5,0),Math.Round(10.05,1)或Math.Round(10.0005,3),结果为10. / p>

为什么Math.Round(10.005,2)返回10.01而不是10?如果默认的MidpointRounding是偶数,为什么不是2个数字的情况呢?

这种竞争的原因是什么?

0 个答案:

没有答案