Я бы предложил использовать регулярные выражения или строковые операции для выделения просто числовой части, а затем вызвать int.Parse
, int.TryParse
, decimal.Parse
, decimal.TryParse
и т. Д. В зависимости от типа номера нужно разобрать.
Регулярное выражение может выглядеть примерно так:
@"###E(-?\d+) ?$";
Вам, конечно, нужно будет изменить его на нецелые. Пример кода:
using System;
using System.Text.RegularExpressions;
class Test
{
static void Main(string[] arg)
{
Regex regex = new Regex(@"###E(-?\d+) ?$");
string text = "###E123 ";
Match match = regex.Match(text);
if (match.Success)
{
string group = match.Groups[1].Value;
int parsed = int.Parse(group);
Console.WriteLine(parsed);
}
}
}
Обратите внимание, что это все еще может завершиться ошибкой с числом, которое превышает диапазон int
. (Еще одна причина использовать int.TryParse
...)