我只是在C#中浏览一些编码问题。 fiddle link here
问:以下代码的输出是什么?
using System;
public class Program
{
public static void Main()
{
Console.WriteLine(Math.Round(6.5));
Console.WriteLine(Math.Round(11.5));
}
}
6 12
这是输出。
我的疑问是6.5是否等于6。11.5为何等于12?
应该为11或6.5应该为7。
也许这是非常不明智的,任何建议/解释都可以帮助我清楚地理解。
答案 0 :(得分:4)
documentation清楚地定义了这种行为:
最接近a的整数。如果a的小数部分是一半 在两个整数之间,其中一个为偶数,另一个为奇数,则 返回偶数。
如果要更改此行为,请使用重载,该重载允许您指定中点舍入行为(请参见docs)。
Math.Round(6.5, MidpointRounding.AwayFromZero) // returns 7.