Я наверное сверхразум - но есть функция.
static double ParseNum(string data, string word)
{
var num = "";
try
{
var ind = word != null ? data.IndexOf(word, StringComparison.OrdinalIgnoreCase) + word.Length : 0;
var read = false;
for (; ind < data.Length; ind++)
{
if (char.IsDigit(data[ind]) || data[ind] == ',' || data[ind] == '.' || data[ind] == ' ')
{
if (data[ind] == ' ') continue;
num += data[ind];
read = true;
}
else if (read) break;
}
var one = double.Parse(num.Replace(".", ","));
var two = double.Parse(num);
Console.WriteLine("one" + one);
Console.WriteLine("two" +two);
return two;//double.Parse(num.Replace(".", ","));
}
catch (Exception)
{
Console.WriteLine("Exception");
//Log.Debug("Не смог распознать число: " + num);
}
return 0;
}
Она прекрасно отрабатывала на NET core 3.1 - но после переноса на WF C# net core 3.1
стала выдавать исключение -
input string was not in a correct format
Хотя по факту ничего не поменялось.
Данные в функцию прилетают в формате :
data=Hello 43.12
word=Hello