Если вы действительно не хотите использовать регулярные выражения, Нолдорин опубликовал хороший метод расширения в другой Q & A.
Обновление
Как правильно заметил Патрик, ссылка указывает на метод расширения, который проверяет, является ли объект числовым типом, а не представляет ли он числовое значение. Тогда использование double.TryParse
в соответствии с предложением Saulius и yodaj007, вероятно, является лучшим выбором, обрабатывая все виды причуд с разными десятичными разделителями, тысячами разделителей и так далее. Просто оберните это в хороший метод расширения:
public static bool IsNumeric(this string value)
{
double temp;
return double.TryParse(value.ToString(), out temp);
}
... и выстрелить:
string someValue = "89.9";
if (someValue.IsNumeric()) // will be true in the US, but not in Sweden
{
// wow, it's a number!
]