Преобразование строки в целое число в C#
В этом посте мы обсудим, как преобразовать строку в эквивалентное целочисленное представление в C#.
1. Использование Int32.Parse() метод
Чтобы преобразовать строковое представление числа в эквивалентное ему 32-разрядное целое число со знаком, используйте метод Int32.Parse() метод.
The Int32.Parse() метод выдает FormatException если строка не числовая. Мы можем справиться с этим с помощью блока try-catch.
2. Использование Int32.TryParse() метод
Лучшей альтернативой является вызов Int32.TryParse() метод. Он не генерирует исключение, если преобразование завершается неудачно. Если преобразование не удалось, этот метод просто возвращает false.
3. Использование Convert.ToInt32() метод
The Convert.ToInt32 можно использовать для преобразования указанного значения в 32-разрядное целое число со знаком.
Этот метод выдает FormatException если строка не числовая. Это можно решить с помощью блока try-catch.
Это все о преобразовании строки в целое число в C#.
Оценить этот пост
Средний рейтинг 5 /5. Подсчет голосов: 27
Голосов пока нет! Будьте первым, кто оценит этот пост.
Сожалеем, что этот пост не оказался для вас полезным!
Расскажите, как мы можем улучшить этот пост?
Спасибо за чтение.
Пожалуйста, используйте наш онлайн-компилятор размещать код в комментариях, используя C, C++, Java, Python, JavaScript, C#, PHP и многие другие популярные языки программирования.
Как мы? Порекомендуйте нас своим друзьям и помогите нам расти. Удачного кодирования
Как конвертировать в c
Caution! In the case below, i will equal 0, not 10 after the TryParse .
This is because TryParse uses an out parameter, not a ref parameter.
![]()
As several others have mentioned, you can also use int.Parse() and int.TryParse() .
If you’re certain that the string will always be an int :
If you’d like to check whether string is really an int first:
or better yet, look into int.TryParse(string)
![]()
int.TryParse is safer since if you put something else in varString (for example «fsfdsfs») you would get an exception. By using int.TryParse when string can’t be converted into int it will return 0 .
Do something like:
![]()
If you are sure that you have «real» number in your string, or you are comfortable of any exception that might arise, use this.
For some more control over the process, use
The fastest way turned out to be the following:
«s» is your string that you want converted to an int. This code assumes you won’t have any exceptions during the conversion. So if you know your string data will always be some sort of int value, the above code is the best way to go for pure speed.
At the end, «y» will have your int value.
This method will try to convert someString into someNumeric , and return a result depends if the conversion is successful, true if conversion is successful and false if conversion failed. Take note that this method will not throw exception if the conversion failed like how Int32.Parse method did and instead it returns zero for someNumeric .
Как преобразовать строку в int в C++?

//Include for printing the output
#include <iostream>
//Include for using the atoi() function
#include <cstdlib>
//Include for using the strcpy function
#include <cstring>
intmain ( )
//Declare a string variable
std :: string strData ;
//Declare a chracter array variable
charstrarr [ 50 ] ;//Take a number from the user
std :: cout <> strData ;//Convert the string into a charcater array
strcpy ( strarr , strData. c_str ( ) ) ;
//Convert the character array into a integerint number = std :: atoi ( strarr ) ;
//Print the number
std :: cout << «The converted number is = « << number << ‘ \n ‘ ;
return0 ;
>

//Include for printing the output
#include <iostream>
intmain ( )
//Declare a string variable
std :: string strData ;//Take a number from the user
std :: cout <> strData ;//Convert the string into number with error handling
try //Convert the string into integer
int number = std :: stoi ( strData ) ;
//Print the converted number
std :: cout << «The converted number is = « << number << ‘ \n ‘ ;
>
//Handle error if invalid number is given
catch ( std :: invalid_argumentconst & e ) std :: cout << «Input value is not a number. \n « ;
>
return0 ;
>


//Include for printing the output
#include <iostream>
//Include for using the istringstream() function
#include <sstream>
intmain ( )
//Declare a string variable
std :: string strData = «12345» ;
//Declare an integer variable
intnumber ;
//Convert the string into the integer
std :: istringstream ( strData ) >> number ;
//Print the converted number
std :: cout << «The converted number is = « << number << ‘ \n ‘ ;
return0 ;
>

Используя функцию sscanf ()
//Include for printing the output
#include <iostream>
//Include for using the sscanf() function
#include <cstdio>
intmain ( ) //Declare a string variable
std :: string strData ;
//Declare an integer variable
intnumber ;//Take a number from the user
std :: cout <> strData ;
if ( sscanf ( strData. c_str ( ) , «%d» , & number ) == 1 ) //Print the converted number
std :: cout << «The converted number is = « << number << ‘ \n ‘ ;
>
else //Print the error message
std :: cout << «Input value is not a number. \n « ;
>
return0 ;
>

#include <iostream>
#include <string>
intmain ( )
//Declare a string variable
std :: string strData = «6000» ;
//Declare an integer variable
intnumber ;//Convert the string into integer
for ( charchr : strData )
if ( chr >= ‘0’ && chr <= ‘9’ ) number = number * 10 + ( chr — ‘0’ ) ;
>//Print the converted number
std :: cout << «The converted number is = « << number << ‘ \n ‘ ;
return0 ;
>
Урок 16. Конвертация строк в числа на C#
На данном уроке мы объединим типы данных, которые обсуждали до сих пор. Мы поговорим о преобразовании строковых значений в числовые типы. Это необходимо, например, тогда, когда пользователь может вводить любые данные, но требуется работать с ними как с числовыми.
Преобразование строк в числовые типы данных
Входные данные часто предоставляются с использованием текстовых полей; введенная информация будет представлять собой строку. Если текстовое поле используется, чтобы указать число, строка может потребовать преобразования в числовой тип данных.
На одном из предыдущих уроков мы обсудили явное и неявное преобразование между числовыми типами с помощью функций приведения. Приведение недоступно при преобразовании между строками и числовыми значениями. Вместо этого Платформа .NET framework предоставляет класс ‘Convert’, специально разработанный для преобразования собственных типов. Числовые типы также предоставляют методы для разбора строк.
Класс Convert
Класс Convert находится в пространстве имен System. Он обеспечивает конвертацию с помощью статических методов. статические методы вызываются без предварительного создания объекта. Другими словами, вам не нужно создавать объект Convert для доступа к требуемым методам.
.NET структура и ключевые слова C#
Одна из сложностей при использовании класса Convert заключается в том, что собственные типы данных C# называются по-другому, чем базовые структуры .NET framework. В следующей таблице перечислены числовые и логические типы данных, описанные в учебнике, и соответствующие имена .NET. Класс Convert использует имена .NET с учетом регистра.

Синтаксис Convert
Статические методы преобразования используют стандартизированный синтаксис. Имя метода начинается с » To «, за которым следует желаемое имя типа данных .NET. Например, чтобы преобразовать строку в float, вызываем метод с названием Convert.ToSingle. Строковое значение, которое необходимо преобразовать, предоставляется в качестве параметра.
Примечание: метод Convert может быть использован без ссылки на пространство имен System, поскольку Visual автоматически включает следующую строку в верхней части файла кода
С помощью этого оператор сообщает компилятору, какие пространства имен следует искать автоматически. Без этой команды необходимо включать пространство имен. Поскольку пространства имен могут иметь длинные имена, это может быть трудно читать. Без директивы using код будет
Числовые преобразования с Convert
Класс Convert также может использоваться для преобразования между числовыми типами. Если число с плавающей точкой преобразуется в целое число, то результат округляется до ближайшего целого числа.. Однако, в отличие от стандартных правил математического округления, если число с плавающей запятой находится ровно на полпути между двумя целыми числами, возвращается ближайшее четное число.
Метод Parse
Также можно конвертировать строки в числа с помощью метода Parse. Это обеспечивает дополнительную гибкость, позволяя разработчику указать стиль преобразовываемого числа. Например, разрешение использования валютных символов или шестнадцатеричных чисел.
Метод Parse является перегруженным, это означает, что существует несколько способов для вызова метода, каждый с различными параметрами. Мы рассмотрим два вида перегрузок в этой статье. Первый принимает один параметр string, содержащий строку для преобразования
Использование числовых стилей (Number Styles)
Простой способ вызова Parse, описанный выше, имеет недостаток. Строка должна содержать только цифры. Число, например «£10,000 » вызывает исключение при анализе. Чтобы избежать этого, можно добавить второй параметр для определения допустимых стилей чисел для содержимого строки. Framework обеспечивает перечисление на допустимое количество стилей. Перечисление — это особый тип значения, который содержит именованный набор доступных значений. Перечисления будут подробно описаны дале.
Перечисление NumberStyles определено в System.Globalization. Чтобы избежать необходимости вводить System.Globalization перед каждой ссылкой на numberstyles добавьте директиву using в начало файла кода.
Теперь мы можем использовать NumberStyles перечисления в качестве второго параметра метода Parse.
Значения перечисления NumberStyles могут быть объединены с помощью оператора OR ( | ), что позволяет использовать несколько стилей. Например
Перечисление содержит некоторые предопределенные стили. В приведенном выше примере для преобразования значения валюты использовались два стиля. Мы можем использовать опцию валюты из перечисления NumberStyles, чтобы разрешить эти стили и многое другое.
Интернационализация
.NET framework включает в себя большой объем функций, связанных с интернационализацией. Это просто означает, что возможна разработка программного обеспечения для пользователей по всему миру, с использованием своих локальных настроек для чисел, валют, языков и т.д. Это сложная тема и выходит за рамки текущего учебника по основам языка C#. Вообще говоря, для числовых преобразований вы можете использовать приведенные выше числовые стили для локальных настроек.
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
статьи IT, Уроки по си шарп, си шарп, конвертация
Преобразование типов значений в .NET
Казалось бы, такая простая тема, как преобразование типов значений (value conversion), не достойна целой статьи. В C# есть подходящий оператор «(T)value», есть типы, которые его реализуют, и тему на этом можно считать закрытой. Но за 14 лет существования .NET разработчики BCL и другие программисты придумали еще 4 способа преобразовывать типы значений.

-
; ; ;
- To, From, Parse, Create methods.
И у всего этого разнообразия методов не было одного удобного API, чтобы преобразовать A→B, не думая о том, каким способом разработчик реализовал возможность этого преобразования.
Решение
Класс TypeConvert в пространстве имен System (да, я знаю, что засорять чужие неймспейсы плохо).
Преобразует тип значения из FromType в ToType, опционально используя format и настройки форматирования formatProvider. Если подходящих методов, принимающих настройки форматирования, нет, то будет вызван вариант без учета форматирования.
В README файле есть описание других методов.
Установка
Всё это лежит в одном файле, который можно забрать к себе в проект и в удобном Nuget-пакете:
В нагрузку к Nuget-пакету идут 2 класса:
TypeActivator — создание экземпляров типа через закешированный конструктор,
HexConvert — преобразование байтов/чисел в hexadecimal представление и обратно.
Применение
В проекте ConsoleApp.CommandLine для биндинга передаваемых параметров неизвестного типа к известным параметрам метода.
В приватных проектах для преобразования значений конфигурации полученной из JSON к конкретным сложным типам (Uri, IpAddress, TimeSpan. ).