Метод TryParse
Decimal.TryParse возвращает true,
если строка корректна, и записывает
результат через параметр out.
При ошибке возвращает false, не
бросая исключение. Для дробей с точкой
используют CultureInfo.InvariantCulture.
Синтаксис
bool ok = decimal.TryParse(text, CultureInfo.InvariantCulture, out decimal res);
Пример
Давайте успешно разберём строку с дробью:
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool ok = decimal.TryParse("3.5", CultureInfo.InvariantCulture, out decimal res);
Console.WriteLine(ok + " " + res);
}
}
Результат выполнения кода:
True 3.5
Пример
Давайте обработаем неверную строку "abcde":
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool ok = decimal.TryParse("abcde", CultureInfo.InvariantCulture, out decimal res);
Console.WriteLine(ok);
}
}
Результат выполнения кода:
False
Пример
Давайте различим успех и неудачу в одном выводе:
using System;
using System.Globalization;
class Program
{
static void Main()
{
bool good = decimal.TryParse("12345", CultureInfo.InvariantCulture, out decimal val);
bool bad = decimal.TryParse("abcde", CultureInfo.InvariantCulture, out decimal skip);
Console.WriteLine(good + " " + val + " " + bad);
}
}
Результат выполнения кода:
True 12345 False
Смотрите также
-
Parse,
который бросает исключение при ошибке -
ToString,
обратное преобразование в строку -
decimal,
тип, в который выполняется разбор -
decimal в type,
описание значимого типа