Я думаю, это потому, что парсеру на самом деле не нужны разделители групп - они не имеют отношения к процессу преобразования строки в десятичную.
Мы называем их разделителями тысяч, но они на самом делене.Они являются разделителями групп - вы можете разделить каждые 3 цифры, каждые 10 цифр, каждую 1 цифру, так почему бы не каждые 0 цифр?
Интересно, что код изменился для .NET 4 - это соответствующий вывод изОтражатель для меня:
else
{
if (((currencySymbol == null) ||
((chPtr2 = MatchChars(p, currencySymbol)) == null)) &&
((ansiCurrencySymbol == null) ||
((chPtr2 = MatchChars(p, ansiCurrencySymbol)) == null)))
{
break;
}
num |= 0x20;
currencySymbol = null;
ansiCurrencySymbol = null;
p = chPtr2 - 1;
}