.Net Round Bug

Возможный дубликат:
В С#: результат Math.Round(2.5) равен 2 (вместо 3)! Вы издеваетесь надо мной?

Функция Math.Round для .Net 3.5 SP1, по-видимому, составляет от 0,5 до нуля, тогда как она округляется от 1,5 до 2,0. Я проверил это с десятичными числами и следующим кодом:

decimal pos = 0.5m;
decimal neg = -0.5m;

Console.WriteLine("Pos: {0} Rnd: {1}", pos, Math.Round(pos));
Console.WriteLine("Neg: {0} Rnd: {1}", neg, Math.Round(neg));

Console.ReadKey();

Этот код выводит следующее:

Поз: 0.5 Rnd: 0 Neg: -0.5 Rnd: 0

Это похоже на вопиющую ошибку. Известна ли работа? Я тестировал это на процессоре Core2 и i7, поэтому он не выглядит аппаратным. И Reflector просто говорит, что функция decimal.round в конечном итоге вызывает системный вызов.

Сообщите мне, если кто-нибудь еще это увидит.