C#:Math Round() 产生不同的结果

Jey*_*ari -1 c# math rounding

我只是在浏览一些 C# 编码问题。小提琴链接在这里

问:以下代码的输出是什么?

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(Math.Round(6.5));
        Console.WriteLine(Math.Round(11.5));
    }
}
Run Code Online (Sandbox Code Playgroud)

6 12

这是输出。

我怀疑6.5是否是6。11.5怎么会是12?

它应该是 11 或者 6.5 应该是 7。

也许这是非常不明智的,任何建议/解释都可以帮助我清楚地理解。

Chr*_*ris 5

文档清楚地定义了这种行为:

最接近 a 的整数。如果 a 的小数部分位于两个整数之间,其中一个是偶数,另一个是奇数,则返回偶数。

如果您想更改此行为,请使用允许您指定中点舍入行为的重载(请参阅文档)。

Math.Round(6.5, MidpointRounding.AwayFromZero) // returns 7.
Run Code Online (Sandbox Code Playgroud)