Dziwne zachowanie typu dziesiętnego dla ToString (IFormatProvider)

var numberFormat = new NumberFormatInfo();
numberFormat.NumberDecimalSeparator = ".";
numberFormat.NumberDecimalDigits = 2;

decimal a = 10.00M;
decimal b = 10M;

Console.WriteLine(a.ToString(numberFormat));
Console.WriteLine(b.ToString(numberFormat));
Console.WriteLine(a == b ? "True": "False");

W konsoli: 10,00 10 Prawda

Dlaczego jest inaczej? Co ważniejsze, jak wywołać ToString (), aby zapewnić to samo wyjście, niezależnie od tego, jak zmienna jest inicjowana?

questionAnswers(3)

yourAnswerToTheQuestion