Проверка ввода С# Проверка положительных чисел

Я изучаю С# и застрял в проблеме, когда мне нужно проверить, вводит ли пользователь ДЕЙСТВИТЕЛЬНУЮ сумму в валюте. то есть без алфавитного символа и без отрицательных чисел.

Пока у меня все в программе завершено, ЗА ИСКЛЮЧЕНИЕМ этой конкретной проверки ввода.

для преобразования ввода в числовые значения у меня есть: originalRate = Double.Parse(txtValue.Text);

затем ниже, что я в тупике, я возился с: bool isValid = Double.TryParse(txtValue.Text,);

Распространенная ошибка времени выполнения компилятора, которую я получаю во время возни: Входная строка имеет неправильный формат. Что я знаю, это то, что я проверяю. Я знаю, что это очень простой материал (это мой первый курс C#). Я искал переполнение стека, и ни одно из подобных решений не имеет для меня особого смысла на данный момент. Мне сказали использовать метод TryParse класса decimal, однако мне кажется, что я использую его неправильно и не полностью.

Спасибо заранее за вашу помощь.


person needsurf    schedule 08.10.2011    source источник
comment
Кстати, это не ошибка компилятора. Это ошибка времени выполнения, поскольку она возникает во время выполнения, а не во время компиляции.   -  person Andreas    schedule 09.10.2011
comment
Спасибо за уточнение. -бг   -  person needsurf    schedule 09.10.2011


Ответы (1)


Вот как вы используете double.TryParse()

double d;
bool isValid = Double.TryParse(txtValue.Text, out d);

на странице MDSN есть несколько примеров.

Чтобы проанализировать строку валюты, вы можете использовать вторую перегрузку double.TryParse().

и попробуйте что-то вроде

double d;
bool isValid = double.TryParse(txtValue.Text, NumberStyles.Currency, CultureInfo.GetCultureInfo("en-US"), out d);
person Bala R    schedule 08.10.2011