I\'ve noticed the following inconsistency in C#/.NET. I was wondering why it is so.
Console.WriteLine(\"{0,-4:#.0} | {1,-4:#.0}\", 1.04, Math.Round(1.04, 1)
WriteLine(string, params object[]) calls string.Format and passes in the current CultureInfo, so will use your localized NumberFormatInfo to determine how to write the number. Math.Round does not take culture into account, since you are specifying exactly how you want it to round.
Hm, after poking around Reflector, maybe not :)