Why does Math.Round(2.5) return 2 in C#?
Math.Round uses banker's rounding (MidpointRounding.ToEven) by default, so 2.5 rounds to 2 and 3.5 rounds to 4. How to get 'school' rounding with AwayFromZero, why Math.Round(2.675, 2) still gives 2.67, how .NET 11 changed Math.Round(double, digits) to round the exact binary value, and why ToString("F2") disagrees with decimal formatting. Verified on .NET 10.0.14 and .NET 11 RC3.