Я бы порекомендовал сделать это в двух чеках:
Первая проверка : найти действительный новый символ.Вы, вероятно, должны принимать только цифры, запятую, точку, + - и букву e.Любой другой символ должен заставить его возвращать false
Вторая проверка : добавить новый символ в строку, разделить его на запятые, используя метод split , и для каждой отдельной строки выполнить TryParse метод с плавающей запятой / двойной.Возможно, вам следует по-разному относиться к последней строке из разбитых элементов, поскольку ввод может продолжаться (т. Е. Строка, заканчивающаяся точкой, вероятно, не будет проанализирована.
Просто помните, что вам понадобится "скажите парсеру, что точки и другие символы разрешены и как они должны обрабатываться. Для меня следующие параметры работают нормально:
System.Globalization.CultureInfo info = new System.Globalization.CultureInfo("en-GB");
System.Globalization.NumberStyles styl = System.Globalization.NumberStyles.AllowDecimalPoint;
double.TryParse(someString, styl, info, out number);`
И еще одно: если можете, измените знак разделения с запятойдо точки с запятой. В некоторых культурах запятая используется для обозначения десятичной точки.