C#:Math Round()的结果不同
我只是在浏览一些C#的编码问题 问:以下代码的输出是什么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应该
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.