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

C#:Math Round()的结果不同,c#,math,rounding,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)); } } 六, 十二, 这是输出 我怀疑6.5是否等于6。为什么11.5等于12 它应该是11或者6.5应该

我只是在浏览一些C#的编码问题

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

using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(Math.Round(6.5));
        Console.WriteLine(Math.Round(11.5));
    }
}
六, 十二,

这是输出

我怀疑6.5是否等于6。为什么11.5等于12

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

也许这很不明智,任何建议/解释都有助于我理解清楚

明确定义了这种行为:

最接近a的整数。如果a的分数分量是一半 在两个整数之间,一个是偶数,另一个是奇数,然后 返回偶数

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


您可能应该阅读舍入函数如何舍入结果:和。默认舍入方法是
中点舍入。ToEven
(因此得到的结果是正确的)。在这种情况下,首先应该
Math.Round(6.5, MidpointRounding.AwayFromZero) // returns 7.