Как проверить является ли строка числом с
Перейти к содержимому

Как проверить является ли строка числом с

  • автор:

Проверить является ли строка числом в 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#

Мне нужно написать проверку на 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
50.1k 6 6 золотых знаков 26 26 серебряных знаков 61 61 бронзовый знак
Спасибо вам огромное
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.5.3.8609

Как проверить, является ли строка числом в 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#. Определение представления числового значения в строке

Чтобы определить, является ли строка допустимым представлением указанного числового типа, воспользуйтесь статическим методом 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, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *