Как проверить, является ли строка числом в C#
Проверка, является ли строка числом или нет в C# #
Например, у нас есть строковая переменная “123”, и если вы хотите проверить, является ли она числовой, используйте приведенный ниже код на C#.
Начиная с C# 7 мы можем объявить переменную out в самом методе TryParse.
Проблема с приведенным выше методом int.TryParse заключается в том, что он не может проверить отрицательные значения строковых чисел.
Проверка отрицательного числа строк в C# #
Для проверки отрицательных значений числа строк мы можем использовать метод C# double.TryParse() .
0) else
Для проверки того, является ли строка числом, всегда используйте метод double.TryParse() , поскольку он может проверять как положительные, так и отрицательные числа.
Don’t be a Stranger. Connect me at Social Networking Sites.
Stay in the loop
Get a short & sweet tutorials delivered to your inbox every couple of days. No spam ever. Unsubscribe any time.
Является ли строка числом в вводе в C#
Мне нужно написать проверку на C#. Проверка заключается в следующем, как проверить ввод пользователя и понять это строка является числом или строкой. Например мне надо, чтобы пользователь заполнил массив и если он вводит не целое число, то программа будет выдавать «Введите число». Есть идеи, как это можно реализовать?
Отслеживать
задан 25 авг 2020 в 17:18
359 2 2 золотых знака 4 4 серебряных знака 14 14 бронзовых знаков
25 авг 2020 в 17:22
Большое вам спасибо. Ибо я только начинаю изучать C# любой совет мне очень полезен.
25 авг 2020 в 17:24
ru.stackoverflow.com/questions/1144663/… – мой ответ на подобный вопрос (не дубликат)
25 авг 2020 в 17:25
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Просто дополню комментарии примером
while (true) < Console.Write("Введите число: "); string text = Console.ReadLine(); if (int.TryParse(text, out int number)) < Console.WriteLine("Вы ввели число ", number); break; > Console.WriteLine("Не удалось распознать число, попробуйте еще раз."); >
Отслеживать
ответ дан 25 авг 2020 в 17:40
48.4k 5 5 золотых знаков 22 22 серебряных знака 57 57 бронзовых знаков
Спасибо вам огромное
25 авг 2020 в 19:56
Есть метод для char — IsDigit
bool StringIsDigits(string s) < foreach(var item in s) < if(!char.IsDigit(item)) return false; //если хоть один символ не число, то выкидываешь "ложь" >return true; //если ни разу не выбило в цикле, значит, все символы - это цифры >
Отслеживать
ответ дан 26 авг 2020 в 4:46
Johannes Krauser III Johannes Krauser III
109 5 5 бронзовых знаков
- c#
- строки
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.17.3574
Проверить является ли строка числом в Python
К сожалению функция isdigit не работает для чисел с плавающей точкой и для отрицательных чисел. Так что для такой проверки можно использовать следующую функцию, которая представляет собой комбинацию из проверки isdigit и обычного конвертирования во float:
def is_digit(string):
if string.isdigit():
return True
else:
try: float(string) return True except ValueError: return False
>>>print(is_digit('neer'))
False
>>>print(is_digit('neer306'))
False
>>>print(is_digit('306'))
True
>>>print(is_digit('0.05'))
True
>>>print(is_digit('0.05abc'))
False
Руководство по программированию в C#. Определение представления числового значения в строке
Чтобы определить, является ли строка допустимым представлением указанного числового типа, воспользуйтесь статическим методом TryParse , реализуемым всеми простыми числовыми типами, например DateTime и IPAddress. В следующем примере показано, как определить, является ли число 108 допустимым типом int.
int i = 0; string s = "108"; bool result = int.TryParse(s, out i); //i now = 108
Если строка содержит нечисловые знаки либо числовое значение слишком велико или мало для указанного типа, TryParse возвращает значение «false» и задает выходному параметру значение «0». В противном случае возвращается значение «true», а выходному параметру задается числовое значение строки.
Строка может содержать только числовые знаки и оставаться недопустимой для типа, где используется метод TryParse . Например, «256» не является допустимым значением для byte , однако оно допустимо для int . «98,6» не является допустимым значением для int , однако оно допустимо для decimal .
Пример
В следующем примере показано использование TryParse со строковыми представлениями значений long , byte и decimal .
string numString = "1287543"; //"1287543.0" will return false for a long long number1 = 0; bool canConvert = long.TryParse(numString, out number1); if (canConvert == true) Console.WriteLine("number1 now = ", number1); else Console.WriteLine("numString is not a valid long"); byte number2 = 0; numString = "255"; // A value of 256 will return false canConvert = byte.TryParse(numString, out number2); if (canConvert == true) Console.WriteLine("number2 now = ", number2); else Console.WriteLine("numString is not a valid byte"); decimal number3 = 0; numString = "27.3"; //"27" is also a valid decimal canConvert = decimal.TryParse(numString, out number3); if (canConvert == true) Console.WriteLine("number3 now = ", number3); else Console.WriteLine("number3 is not a valid decimal");
Отказоустойчивость
Простые числовые типы также реализуют статический метод Parse , который вызывает исключение, если строка не является допустимым числом. В целом оператор TryParse более эффективен, поскольку если число не является допустимым, он просто возвращает значение «false».
Безопасность .NET
Для проверки данных, введенных пользователем в такие элементы управления, как текстовые поля и поля со списком, всегда следует использовать метод TryParse или Parse .
См. также
- Преобразование массива байтов в значение типа int
- Практическое руководство. Преобразование строки в число
- Преобразование из шестнадцатеричных строк в числовые типы
- Анализ числовых строк
- Типы форматирования
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.