Hey! I have textBox with text like «12:30» and this code textBox -> Text -> ToString() -> Split(':')[1]
It return «30» as string. And I want convert it to Int. How? I founded function like Convert::ToInt32() etc, but it doesnt work for my c++ (Visual C++ 2010 -> Winfow Form). Help me plz! (I started learn c++ 2 days ago)
And i use Managed C++
Cody Gray♦
236k50 gold badges486 silver badges567 bronze badges
asked Jan 15, 2011 at 11:11
2
As you’re using Managed C++, then you can do this:
double foo = System::Convert::ToDouble("200");
int bar = System::Convert::ToInt32("200");
Use whatever you need!
answered Jan 15, 2011 at 11:27
NawazNawaz
349k113 gold badges656 silver badges847 bronze badges
3
you can use c standard lib frunction atoi
CString s = "30";
int x = atoi( s ); // x is now 30
Edit: Oh, your are using managed C++, then one of the following two should do the job
System::Convert::ToInt32(str, 10);
System::Int32::Parse(str);
Refer to this page with an example: http://msdn.microsoft.com/en-us/library/b3h1hf19.aspx
answered Jan 15, 2011 at 11:23
ak.ak.
3,2893 gold badges36 silver badges50 bronze badges
3
I use
int intVar = Int32::Parse(stringVar);
answered Jan 17, 2011 at 11:40
DPDDPD
1,7042 gold badges19 silver badges26 bronze badges
Максим Зайцев 1 / 1 / 0 Регистрация: 05.11.2013 Сообщений: 38 |
||||
1 |
||||
06.10.2014, 23:47. Показов 7623. Ответов 3 Метки нет (Все метки)
Спасибо Добавлено через 30 минут
как из текстового типа (textBox1.Text) сделать число?
__________________
0 |
meksik 202 / 171 / 67 Регистрация: 04.10.2014 Сообщений: 839 |
||||
07.10.2014, 00:21 |
2 |
|||
Добавлено через 1 минуту Не по теме: Максим Зайцев, модераторы будут ругаться, нельзя в одной теме разные вопросы задавать
0 |
aquaMakc 483 / 396 / 68 Регистрация: 14.02.2014 Сообщений: 1,930 |
||||
07.10.2014, 09:22 |
3 |
|||
0 |
onfrich 14 / 14 / 9 Регистрация: 22.11.2012 Сообщений: 62 |
||||
07.10.2014, 17:36 |
4 |
|||
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
07.10.2014, 17:36 |
Помогаю со студенческими работами здесь Из string[] в int[] From string to int Преобразование int в double Нужно сделать, дабы… Библиотека int и string Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 4 |
Like other programming languages, in C# we can convert string to int. There are three ways to convert it and they are as follows:
- Using the Parse Method
- Using the TryParse Method
- Using the Convert Method from (System.Convert class)
The input string can be anything like “10”, “10.10”, “10GeeksforGeeks”, “” (Your string can be number, a combination of characters or an Empty String).
When a given string is number or floating-point number then we can use directly any of above-listed methods to convert it from string to int but the combination of characters and an empty string will throw an error which needs to catch using exceptional handling.
1. Using the Parse Method
Here, we are calculating the area of a circle but the given input length is in string format and hence used Int32.Parse() method to convert the length from string to int (32-bit signed integer equivalent).
using
System;
namespace
GeeksforGeeks {
class
GFG{
public
static
void
Main(
string
[] args)
{
string
l =
"10"
;
int
length = Int32.Parse(l);
int
aofs = length * length;
Console.WriteLine(
"Area of a circle is: {0}"
, aofs);
}
}
}
Output:
Area of a circle is: 100
When we have a value greater than Integer: If you assign the value big value to string then it will through an OverflowException as int data type can’t handle the large values (It very much depends upon the range of data types).
string l="10000000000";
The output will be System.OverflowException: Value was either too large or too small for an Int32.
When we have Empty String: If you keep string blank then it will through an exception System Format Exception as the input is blank.
string l="";
The output will be: System.FormatException: Input string was not in a correct format.
2. Using the TryParse Method
Here, we have used TryParse() method, the difference in Parse() and TryParse() method is only that TryParse() method always return the value it will never throw an exception. If you closely look at the value of an input, then it clearly shows that it will throw an exception but TryParse() will never throw an exception. Hence the output is Zero.
using
System;
namespace
GeeksforGeeks {
class
GFG{
public
static
void
Main(
string
[] args)
{
string
l =
"10000000000"
;
int
length = 0;
Int32.TryParse(l,
out
length);
int
aofs = length * length;
Console.WriteLine(
"Area of a circle is: {0}"
, aofs);
}
}
}
Output:
Area of a circle is: 0
3. Using the Convert Method
Here, we have used Convert.ToInt32() method, the difference in Parse() and Convert.ToInt32() method is only that Convert.ToInt32() method always accept the null value return it. Hence the output is Zero. We have used exceptional handling in this example so, try block will throw the exception if occurred and catch block will accept the exception and write whatever exception occurred.
using
System;
namespace
GeeksforGeeks {
class
GFG {
public
static
void
Main(
string
[] args)
{
string
l =
null
;
try
{
int
length = Convert.ToInt32(l);
int
aofs = length * length;
Console.WriteLine(
"Area of a circle is: {0}"
, aofs);
}
catch
(Exception e) {
Console.WriteLine(
"Unable to convert:Exception:"
+ e.Message);
}
}
}
}
Output:
Area of a circle is: 0
Here you will learn how to convert a numeric string to the integer type.
In C#, you can convert a string representation of a number to an integer using the following ways:
- Parse() method
- Convert class
- TryParse() method — Recommended
Parse Method
The Parse()
methods are available for all the primitive datatypes. It is the easiest way to convert from string to integer.
The Parse methods are available for 16, 32, 64 bit signed integer types:
- Int16.Parse()
- Int32.Parse()
- Int64.Parse()
Parse(string s)
Parse(string s, numberstyle style)
Parse(String s, NumberStyles style, IFormatProvider provider)
It takes up to 3 parameters, a string which is mandatory to convert string to integer format, the second parameter contains the number style which specifies the style of the number to be represented, and the third parameter represents string cultural-specific format.
The following example demonstrates converting numeric strings to integers.
Int16.Parse("100"); // returns 100
Int16.Parse("(100)", NumberStyles.AllowParentheses); // returns -100
int.Parse("30,000", NumberStyles.AllowThousands, new CultureInfo("en-au"));// returns 30000
int.Parse("$ 10000", NumberStyles.AllowCurrencySymbol); //returns 10000
int.Parse("-100", NumberStyles.AllowLeadingSign); // returns -100
int.Parse(" 100 ", NumberStyles.AllowLeadingWhite | NumberStyles.AllowTrailingWhite); // returns 100
Int64.Parse("2147483649"); // returns 2147483649
As you can see in the above example, a valid numeric string can be converted to an integer. The Parse()
method allows conversion of the numeric string into different formats into an integer using the NumberStyles
enum e.g string with parentheses, culture-specific numeric string, with a currency symbol, etc.
However, the passed string must be a valid numeric string or in the range of the type on which they are being called. The following statements throw exceptions.
int.Parse(null);//thows FormatException
int.Parse("");//thows FormatException
int.Parse("100.00"); // throws FormatException
int.Parse( "100a"); //throws formatexception
int.Parse(2147483649);//throws overflow exception use Int64.Parse()
Pros:
- Converts valid numeric string to integer value.
- Supports different number styles.
- Supports culture-specific custom formats.
Cons:
- Input string must be a valid numeric string.
- The numeric string must be within the range of int type on which the method is called.
- Throws exception on converting null or invalid numeric string.
Convert Class
Another way to convert string to integer is by using static Convert class. The Convert class includes different methods which convert base data type to another base data type.
The Convert class includes the following methods to convert from different data types to int type.
- Convert.ToInt16()
- Convert.ToInt32()
- Convert.ToInt64()
The Convert.ToInt16()
method returns the 16-bit integer e.g. short, the Convert.ToInt32()
returns 32-bit integers e.g. int and
the Convert.ToInt64()
returns the 64-bit integer e.g. long.
Convert.ToInt16("100"); // returns short
Convert.ToInt16(null);//returns 0
Convert.ToInt32("233300");// returns int
Convert.ToInt32("1234",16); // returns 4660 - Hexadecimal of 1234
Convert.ToInt64("1003232131321321");//returns long
// the following throw exceptions
Convert.ToInt16("");//throws FormatException
Convert.ToInt32("30,000"); //throws FormatException
Convert.ToInt16("(100)");//throws FormatException
Convert.ToInt16("100a"); //throws FormatException
Convert.ToInt16(2147483649);//throws OverflowException
Pros:
- Converts from any data type to integer.
- Converts null to 0, so not throwing an exception.
Cons:
- Input string must be valid number string, cannot include different numeric formats. Only works with valid integer string.
-
Input string must be within the range of called
IntXX
method e.g. Int16, Int32, Int64. - The input string cannot include parenthesis, comma, etc.
-
Must use a different method for different integer ranges e.g. cannot use the
Convert.ToInt16()
for the integer string higher than «32767».
Visit Convert class for more information.
TryParse Method
The TryParse()
methods are available for all the primitive types to convert string to the calling data type. It is the recommended way to convert string to an integer.
The TryParse()
method converts the string representation of a number to its 16, 32, and 64-bit signed integer equivalent.
It returns boolean which indicates whether the conversion succeeded or failed and so it never throws exceptions.
The TryParse()
methods are available for all the integer types:
- Int16.TryParse()
- Int32.TryParse()
- Int64.TryParse()
bool Int32.TryParse(string s, out int result)
bool Int32.TryParse(string s, NumberStyle style, IFormatProvider provider, out int result)
The TryParse()
method takes 3 parameters identical to the Parse()
method having the same functionality.
The following example demonstrates the TryParse()
method.
string numberStr = "123456";
int number;
bool isParsable = Int32.TryParse(numberStr, out number);
if (isParsable)
Console.WriteLine(number);
else
Console.WriteLine("Could not be parsed.");
The following example demonstrates converting invalid numeric string.
string numberStr = "123456as";
int number;
bool isParsable = Int32.TryParse(numberStr, out number);
if (isParsable)
Console.WriteLine(number);
else
Console.WriteLine("Could not be parsed.");
In the above example, numberStr = "123456as"
which is invalid numeric string.
However, Int32.TryParse()
method will return false instead of throwing an exception.
Thus, the TryParse()
method is the safest way to converting numeric string to integer type when we don’t know whether the string is a valid numeric string or not.
Pros:
- Converts different numeric strings to integers.
- Converts string representation of different number styles.
- Converts culture-specific numeric strings to integers.
- Never throws an exception. Returns false if cannot parse to an integer.
Cons:
- Must use out parameter.
- Need to write more code lines instead of single method call.
Все уроки по C# расположены здесь.
На данном уроке мы объединим типы данных, которые обсуждали до сих пор. Мы поговорим о преобразовании строковых значений в числовые типы. Это необходимо, например, тогда, когда пользователь может вводить любые данные, но требуется работать с ними как с числовыми.
Преобразование строк в числовые типы данных
Входные данные часто предоставляются с использованием текстовых полей; введенная информация будет представлять собой строку. Если текстовое поле используется, чтобы указать число, строка может потребовать преобразования в числовой тип данных.
На одном из предыдущих уроков мы обсудили явное и неявное преобразование между числовыми типами с помощью функций приведения. Приведение недоступно при преобразовании между строками и числовыми значениями. Вместо этого Платформа .NET framework предоставляет класс ‘Convert’, специально разработанный для преобразования собственных типов. Числовые типы также предоставляют методы для разбора строк.
Класс Convert
Класс Convert находится в пространстве имен System. Он обеспечивает конвертацию с помощью статических методов. статические методы вызываются без предварительного создания объекта. Другими словами, вам не нужно создавать объект Convert для доступа к требуемым методам.
.NET структура и ключевые слова C#
Одна из сложностей при использовании класса Convert заключается в том, что собственные типы данных C# называются по-другому, чем базовые структуры .NET framework. В следующей таблице перечислены числовые и логические типы данных, описанные в учебнике, и соответствующие имена .NET. Класс Convert использует имена .NET с учетом регистра.
Синтаксис Convert
Статические методы преобразования используют стандартизированный синтаксис. Имя метода начинается с » To «, за которым следует желаемое имя типа данных .NET. Например, чтобы преобразовать строку в float, вызываем метод с названием Convert.ToSingle. Строковое значение, которое необходимо преобразовать, предоставляется в качестве параметра.
// string -> integer int stringToInt = Convert.ToInt32("25"); // string -> decimal decimal stringToDecimal = Convert.ToDecimal("25.5"); // Booleans может быть конвертирован тоже bool stringToBoolean = Convert.ToBoolean("true");
Примечание: метод Convert может быть использован без ссылки на пространство имен System, поскольку Visual автоматически включает следующую строку в верхней части файла кода
using System;
С помощью этого оператор сообщает компилятору, какие пространства имен следует искать автоматически. Без этой команды необходимо включать пространство имен. Поскольку пространства имен могут иметь длинные имена, это может быть трудно читать. Без директивы using код будет
int stringToInt = System.Convert.ToInt32("25");
Числовые преобразования с Convert
Класс Convert также может использоваться для преобразования между числовыми типами. Если число с плавающей точкой преобразуется в целое число, то результат округляется до ближайшего целого числа.. Однако, в отличие от стандартных правил математического округления, если число с плавающей запятой находится ровно на полпути между двумя целыми числами, возвращается ближайшее четное число.
decimal originalValue = 25.5M; int converted = Convert.ToInt32(originalValue); // Результат 26 int casted = (int)originalValue; // Результат 25
Метод Parse
Также можно конвертировать строки в числа с помощью метода Parse. Это обеспечивает дополнительную гибкость, позволяя разработчику указать стиль преобразовываемого числа. Например, разрешение использования валютных символов или шестнадцатеричных чисел.
Метод Parse является перегруженным, это означает, что существует несколько способов для вызова метода, каждый с различными параметрами. Мы рассмотрим два вида перегрузок в этой статье. Первый принимает один параметр string, содержащий строку для преобразования
string toConvert = "100"; int convertedInt = int.Parse(toConvert); // Результат 100 float convertedFloat = float.Parse(toConvert); // Результат 100.0
Использование числовых стилей (Number Styles)
Простой способ вызова Parse, описанный выше, имеет недостаток. Строка должна содержать только цифры. Число, например «£10,000 » вызывает исключение при анализе. Чтобы избежать этого, можно добавить второй параметр для определения допустимых стилей чисел для содержимого строки. Framework обеспечивает перечисление на допустимое количество стилей. Перечисление — это особый тип значения, который содержит именованный набор доступных значений. Перечисления будут подробно описаны дале.
Перечисление NumberStyles определено в System.Globalization. Чтобы избежать необходимости вводить System.Globalization перед каждой ссылкой на numberstyles добавьте директиву using в начало файла кода.
using System.Globalization;
Теперь мы можем использовать NumberStyles перечисления в качестве второго параметра метода Parse.
// Преобразования, включая разделитель тысяч int thousands = int.Parse("1,000", NumberStyles.AllowThousands); // Преобразование значения в том числе десятичной точки float withDecimal = float.Parse("5.50", NumberStyles.AllowDecimalPoint); // Преобразование значения в том числе и символ валюты int withCurrency = int.Parse("£5", NumberStyles.AllowCurrencySymbol);
Значения перечисления NumberStyles могут быть объединены с помощью оператора OR ( | ), что позволяет использовать несколько стилей. Например
float multiple = float.Parse("£5.50", NumberStyles.AllowDecimalPoint | NumberStyles.AllowCurrencySymbol);
Перечисление содержит некоторые предопределенные стили. В приведенном выше примере для преобразования значения валюты использовались два стиля. Мы можем использовать опцию валюты из перечисления NumberStyles, чтобы разрешить эти стили и многое другое.
float money = float.Parse("£9,999.99", NumberStyles.Currency);
Интернационализация
.NET framework включает в себя большой объем функций, связанных с интернационализацией. Это просто означает, что возможна разработка программного обеспечения для пользователей по всему миру, с использованием своих локальных настроек для чисел, валют, языков и т.д. Это сложная тема и выходит за рамки текущего учебника по основам языка C#. Вообще говоря, для числовых преобразований вы можете использовать приведенные выше числовые стили для локальных настроек.
Автор этого материала — я — Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML — то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
статьи IT, Уроки по си шарп, си шарп, конвертация
How to convert string to int in C#?
The top 3 ways to convert string to int in C# are:
1. TryParse
The best way to convert string to int in C# is to use the TryParse
method.
To convert string to int in C#:
- Pass the string as the first parameter to int.TryParse
- Pass the int reference as the second parameter using the out parameter modifier.
- Capture the boolean returned from int.TryParse.
- If int.TryParse returned
true
, the string to int conversion worked. - If int.TryParse returned
false
, the string to int conversion failed and the int value will be 0 (default).
Here’s the full code showing successful string to int conversion:
Here’s the full code showing failed string to int conversion:
2. Parse
The main difference between int.TryParse and int.Parse is that int.TryParse won’t throw an exception if the passed string is in invalid numeric format. On the other hand, int.Parse throws exceptions that we need to catch.
If you want to use int.Parse, make sure your string is in valid format or add code to catch exceptions.
Here’s a code example of successful use of int.Parse:
If the input string is not a valid string representation of a number, string to int conversion fails:
Error: System.FormatException: Input string was not in a correct format.
at System.Number.ThrowOverflowOrFormatException(ParsingStatus status, TypeCode type)
at System.Int32.Parse(String s)
3. Convert
Another way to convert string to int is to use the Convert class:
The static method Convert.ToInt32
uses int.Parse
to convert string to int:
The main benefit of using Convert class instead of calling int.Parse directly is that Convert has overloads for different data types. For example, Convert.ToInt32()
accepts both string and DateTime:
So with Convert
we can keep our syntax consistent.
Supported types
Convert is a static class that exposes methods for converting a string to varios numeric data types:
Type | Convert Method |
---|---|
decimal |
ToDecimal(String) |
float |
ToSingle(String) |
double |
ToDouble(String) |
short |
ToInt16(String) |
int |
ToInt32(String) |
long |
ToInt64(String) |
ushort |
ToUInt16(String) |
uint |
ToUInt32(String) |
ulong |
ToUInt64(String) |
ToInt32 can throw FormatException or OverflowException.
FAQ
What’s the signature of int.TryParse method?
The signature of the int.TryParse is:
What is the Try-Parse Pattern?
Try-Parse Pattern is a design pattern for exception handling. Try-Parse method is expected not to throw an exception if the action is unsuccessful. Instead, it is supposed to return false.
The pattern is not restricted to converting strings to other types. It can be used for any action that may or may not succeed.
How does String to Int conversion work?
.NET uses the internal Number
class from the System
namespace to define logic that recognizes numbers in a string.
The most important method for converting String to Int is the ParseNumber
method:
There are many gotchas when parsing an int. For example, leading spaces, trailing spaces, parentheses, currency symbols, and more.
ParseNumber
supports complex scenarios using NumberStyles. Depending on the style you select, the parser validates and converts the string.
Published on: Jul 9, 2022
In this post, we are going to learn how to convert string to int in C#. We will use the convert class, Parse(), TryParse() method and convert string number to int to o an equivalent 16,32,64 bit signed integer with program example.
3 methods to convert String to int in C#
- Using System.Convert class method : Convert.ToInt16()/Convert.ToInt32()/Convert.ToInt64()
- Using Parse() method :Int16.Parse()/Int32.Parse()/Int64.Parse()
- using TryParse() method : Int16.TryParse()/Int32.TryParse()/Int64.TryParse()
1. Convert class to convert string to int in C#
The system namespace convert class has static methods to convert a string numeric value to equivalent 16,32,64 bit signed integer and throw FormatException exception, So it is best practice to use try-catch block. if the string value is not a valid number or in case of null value converted to 0 no exception throw.
Diiferent method for signed integer in convert class
- Convert.ToInt16() : It convert a string number to 16 bit signed integer(short).
- Convert.ToInt32() : It converts a string number to 32 bit signed integer
- Convert.ToInt64() : It converts a string number to 64 bit signed integer(long)
C# Program Example
using System; namespace ProgramExample { public class conversion { static void Main(string[] args) { try { Console.WriteLine("Please Enter int value :"); string str_val = Console.ReadLine(); Int16 int16_res = Convert.ToInt16(str_val); Int32 int32_res = Convert.ToInt32(str_val); Int64 int64_res = Convert.ToInt64(str_val); Console.WriteLine("string to int conversion :n int16 :{0}n int32:{1}n int64:{2}", int16_res, int32_res, int64_res); Console.WriteLine(Convert.ToInt32(null)); Console.ReadLine(); } catch(FormatException) { Console.WriteLine("Please enter valid string number:"); } } } }
Output
Please Enter int value : 90 string to int conversion : int16 :90 int32:90 int64:90
2. Parse() method to convert string to int in C#
The parse() method converts a string number to an equivalent 16, 32, 64 bit signed integer and if it is a valid string number. It can be used to convert culture-specific formats.
Diiferent Parse() method for signed integer
- Int16.Parse() : It convert a string number to 16 bit integer(short)
- Int32.Parse() : It converts a string number to 32 bit integer
- Int64.Parse() : It converts a string number to 64 bit integer(long).
C# Program Example
using System; using System.Globalization; namespace ProgramExample { class conversion { static void Main(string[] args) { Console.WriteLine("Please Enter int value :"); string str_val = Console.ReadLine(); Int16 int16_res = Int16.Parse(str_val); Int32 int32_res = Int32.Parse(str_val); Int64 int64_res = Int64.Parse(str_val); Console.WriteLine("string to int conversion :n int16 :{0}n int32:{1}n int64:{2}", int16_res, int32_res, int64_res); //culture specifc format Int64 res_culspec = Int64.Parse("532,100", NumberStyles.AllowThousands, new CultureInfo("en-US")); Console.WriteLine( res_culspec); Console.ReadLine(); } } }
Output
Please Enter int value : 90 string to int conversion : int16 :90 int32:90 int64:90 532100
3. TryParse() method string to int in C#
The tryparse() method is used when we are not sure about the input is a valid numeric string or not. converts a string number to an equivalent 16,32,64 bit signed integer. It is the best way to convert string to int. It is also used for culture-specific conversion.
It returns the boolean value TRUE if conversion is successful and returns the converted number in an out parameter else returns False when the conversion fails or is not a valid string.
C# Program Example
using System; using System.Globalization; namespace ProgramExample { class conversion { static void Main(string[] args) { Int16 int16_res; Int32 int32_res; Int64 int64_res; Int64 culture; Console.WriteLine("Please Enter int value :"); string str_val = Console.ReadLine(); bool sucess16 = Int16.TryParse(str_val,out int16_res); bool sucess32 = Int32.TryParse(str_val,out int32_res); bool sucess64 = Int64.TryParse(str_val, out int64_res); Console.WriteLine("string to int conversion successful :n int16 :{0}n int32:{1}n int64:{2}", sucess16, sucess32, sucess64); Console.WriteLine("string to int conversion value :n int16 :{0}n int32:{1}n int64:{2}", int16_res, int32_res, int64_res); //culture specifc format bool res_culspec = Int64.TryParse("532,100", NumberStyles.AllowThousands, new CultureInfo("en-US"),out culture); Console.WriteLine(culture); Console.ReadLine(); } } }
Output
Please Enter int value : 89 string to int conversion successful : int16 :True int32:True int64:True string to int conversion value : int16 :89 int32:89 int64:89 532100
Summary
In this post, we have learned 3 methods for how to convert Convert string to int in C# that includes with C# program example.
- Convert class to Convert string to int in C# –
- Convert.ToInt16()
- Convert.ToInt32()
- Convert.ToInt64()
- Parse() method to convert string to int in C# –
- Int16.Parse()
- Int32.Parse()
- Int64.Parse()
- TryParse() method string to int in C#-
- Int16.TryParse()
- Int32.TryParse()
- Int64.TryParse()