public static void Main()
var doubles = new []{2.5m, 3.5m, 4.5m, -2.5m, -3.5m, -4.5m};
Console.WriteLine("Round Test - ToEven (Default Mode)");
Console.WriteLine("-------------------------");
foreach(var d in doubles){
Console.WriteLine("Round '{0}' results in '{1}'", d, Math.Round(d));
Console.WriteLine("\r\n\r\nRound Test - AwayFromZero");
Console.WriteLine("-------------------------");
foreach(var d in doubles){
Console.WriteLine("Round '{0}' results in '{1}'", d, Math.Round(d, MidpointRounding.AwayFromZero));
Console.WriteLine("\r\n\r\nConvert.ChangeType uses default rounding");
Console.WriteLine("-------------------------");
foreach(var d in doubles){
Console.WriteLine("Convert.ChangeType '{0}' to int results in '{1}'", d, Convert.ChangeType(d, typeof(int)));
Console.WriteLine("\r\n\r\nCast always rounds down");
Console.WriteLine("-------------------------");
foreach(var d in new []{5.9, 1.9, -5.9, -1.9}){
Console.WriteLine("Cast '{0}' to int results in '{1}'", d, (int)d);