답변:
이 시도:
int x = Int32.Parse(TextBoxD1.Text);
또는 더 나은 아직 :
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
또한 반환 값 Int32.TryParse
a bool
를 사용하면 반환 값을 사용하여 구문 분석 시도 결과에 대한 결정을 내릴 수 있습니다.
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
궁금한 점과의 차이점은 다음 Parse
과 TryParse
같습니다.
TryParse 메서드는 Parse 메서드와 비슷하지만 변환에 실패한 경우 TryParse 메서드는 예외를 throw하지 않습니다. s가 유효하지 않고 구문 분석 할 수없는 경우 예외 처리를 사용하여 FormatException을 테스트 할 필요가 없습니다. - MSDN
Int64.Parse()
. 입력이 정수가 아닌 경우, execption 및을 사용하여 스택 추적을 얻거나을 사용 Int64.Parse
하여 부울 False
을 얻으 Int64.TryParse()
므로 if와 같은 if 문이 필요합니다 if (Int32.TryParse(TextBoxD1.Text, out x)) {}
.
Convert.ToInt32( TextBoxD1.Text );
텍스트 상자의 내용이 유효하다고 확신하는 경우이 옵션을 사용하십시오 int
. 더 안전한 옵션은
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
사용할 수있는 기본값이 제공됩니다. Int32.TryParse
또한 구문 분석이 가능한지 여부를 나타내는 부울 값을 반환하므로 if
명령문 의 조건으로 사용할 수도 있습니다 .
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
int.TryParse()
텍스트가 숫자가 아닌 경우 발생하지 않습니다.
int myInt = int.Parse(TextBoxD1.Text)
다른 방법은 다음과 같습니다.
bool isConvertible = false;
int myInt = 0;
isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
둘의 차이점은 텍스트 상자의 값을 변환 할 수없는 경우 첫 번째 값은 예외를 throw하는 반면 두 번째 값은 false를 반환한다는 것입니다.
code
int NumericJL; bool isNum = int.TryParse (nomeeJobBand, NumericJL); if (isNum) // retured JL을 int로 파싱 할 수 있다면 비교를 계속하십시오. {if (! (NumericJL> = 6)) {// Nominate} // else {}}
char에서 Convert.ToInt32 ()를 사용할 때주의하십시오! UTF-16을
반환합니다문자 코드를 !
[i]
인덱싱 연산자를 사용하여 특정 위치에서만 문자열에 액세스하면 !가 char
아닌 a를 반환 합니다 string
.
String input = "123678";
^
|
int indexOfSeven = 4;
int x = Convert.ToInt32(input[indexOfSeven]); // Returns 55
int x = Convert.ToInt32(input[indexOfSeven].toString()); // Returns 7
int x = 0;
int.TryParse(TextBoxD1.Text, out x);
TryParse 문은 구문 분석이 성공했는지 여부를 나타내는 부울을 반환합니다. 성공하면 구문 분석 된 값이 두 번째 매개 변수에 저장됩니다.
자세한 내용은 Int32.TryParse 메서드 (String, Int32) 를 참조하십시오.
즐기세요 ...
int i = 0;
string s = "123";
i =int.Parse(s);
i = Convert.ToInt32(s);
여기에 이미 많은 솔루션이 있지만 int.Parse
모든 답변에서 중요한 부분이 빠져 있습니다. 일반적으로 숫자 값의 문자열 표현은 문화권에 따라 다릅니다. 통화 기호, 그룹 (또는 수천) 구분 기호 및 소수 구분 기호와 같은 숫자 문자열 요소는 모두 문화에 따라 다릅니다.
문자열을 정수로 구문 분석하는 강력한 방법을 만들려면 문화권 정보를 고려해야합니다. 그렇지 않으면 현재 문화권 설정 이 사용됩니다. 파일 형식을 구문 분석하는 경우 사용자에게 놀라움을 줄 수 있습니다. 영어 구문 분석을 원할 경우 사용할 문화권 설정을 지정하여 명시 적으로 명시하는 것이 가장 좋습니다.
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
자세한 내용은 CultureInfo, 특히 MSDN의 NumberFormatInfo 를 참조하십시오 .
당신은 당신의 자신의 확장 방법을 작성할 수 있습니다
public static class IntegerExtensions
{
public static int ParseInt(this string value, int defaultValue = 0)
{
int parsedValue;
if (int.TryParse(value, out parsedValue))
{
return parsedValue;
}
return defaultValue;
}
public static int? ParseNullableInt(this string value)
{
if (string.IsNullOrEmpty(value))
{
return null;
}
return value.ParseInt();
}
}
코드 어디에서나 전화
int myNumber = someString.ParseInt(); // Returns value or 0
int age = someString.ParseInt(18); // With default value 18
int? userId = someString.ParseNullableInt(); // Returns value or null
이 구체적인 경우
int yourValue = TextBoxD1.Text.ParseInt();
StringExtensions
대신에 클래스를 호출 IntegerExtensions
하면 string
안됩니다 int
.
TryParse documentation에 설명 된대로 TryParse ()는 유효한 숫자를 찾았 음을 나타내는 부울을 반환합니다.
bool success = Int32.TryParse(TextBoxD1.Text, out val);
if (success)
{
// Put val in database
}
else
{
// Handle the case that the string doesn't contain a valid number
}
둘 중 하나를 사용할 수 있습니다.
int i = Convert.ToInt32(TextBoxD1.Text);
또는
int i = int.Parse(TextBoxD1.Text);
//May be quite some time ago but I just want throw in some line for any one who may still need it
int intValue;
string strValue = "2021";
try
{
intValue = Convert.ToInt32(strValue);
}
catch
{
//Default Value if conversion fails OR return specified error
// Example
intValue = 2000;
}
다음을 사용하여 C #에서 문자열을 int로 변환 할 수 있습니다.
즉, 변환 클래스의 기능 Convert.ToInt16()
, Convert.ToInt32()
, Convert.ToInt64()
또는 사용하여 Parse
및 TryParse
기능. 여기에 예가 나와 있습니다 .
또한 확장 메소드를 사용할 수 있으므로 더 읽기 쉽습니다 (모든 사람이 이미 일반 구문 분석 함수에 사용되었지만).
public static class StringExtensions
{
/// <summary>
/// Converts a string to int.
/// </summary>
/// <param name="value">The string to convert.</param>
/// <returns>The converted integer.</returns>
public static int ParseToInt32(this string value)
{
return int.Parse(value);
}
/// <summary>
/// Checks whether the value is integer.
/// </summary>
/// <param name="value">The string to check.</param>
/// <param name="result">The out int parameter.</param>
/// <returns>true if the value is an integer; otherwise, false.</returns>
public static bool TryParseToInt32(this string value, out int result)
{
return int.TryParse(value, out result);
}
}
그리고 그런 식으로 호출 할 수 있습니다.
문자열이 "50"과 같은 정수인지 확인하십시오.
int num = TextBoxD1.Text.ParseToInt32();
확실하지 않고 충돌을 방지하려는 경우.
int num;
if (TextBoxD1.Text.TryParseToInt32(out num))
{
//The parse was successful, the num has the parsed value.
}
더 역동적으로 만들려면 더블, 플로팅 등으로 구문 분석 할 수 있으므로 일반 확장을 만들 수 있습니다.
의 변환 string
에이 int
를 위해 수행 할 수 있습니다 int
, Int32
,Int64
및 기타 데이터 유형은 .NET에서 정수 데이터 유형을 반영
아래 예제는이 변환을 보여줍니다.
이 정보 (정보 용) 데이터 어댑터 요소가 int 값으로 초기화되었습니다. 다음과 같이 직접 수행 할 수 있습니다.
int xxiiqVal = Int32.Parse(strNabcd);
전의.
string strNii = "";
UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );
이것은 할 것이다
string x = TextBoxD1.Text;
int xi = Convert.ToInt32(x);
아니면 사용할 수 있습니다
int xi = Int32.Parse(x);
TryParse 또는 내장 함수없이 아래처럼 수행 할 수 있습니다.
static int convertToInt(string a)
{
int x = 0;
for (int i = 0; i < a.Length; i++)
{
int temp = a[i] - '0';
if (temp != 0)
{
x += temp * (int)Math.Pow(10, (a.Length - (i+1)));
}
}
return x;
}
int i = Convert.ToInt32(TextBoxD1.Text);
구문 분석 방법을 사용하여 문자열을 정수 값으로 변환 할 수 있습니다.
예 :
int val = Int32.parse(stringToBeParsed);
int x = Int32.parse(1234);
항상 이렇게하는 방법은 다음과 같습니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace example_string_to_int
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string a = textBox1.Text;
// This turns the text in text box 1 into a string
int b;
if (!int.TryParse(a, out b))
{
MessageBox.Show("This is not a number");
}
else
{
textBox2.Text = a+" is a number" ;
}
// Then this 'if' statement says if the string is not a number, display an error, else now you will have an integer.
}
}
}
이것이 내가하는 방법입니다.
방법 1
int TheAnswer1 = 0;
bool Success = Int32.TryParse("42", out TheAnswer1);
if (!Success) {
Console.WriteLine("String not Convertable to an Integer");
}
방법 2
int TheAnswer2 = 0;
try {
TheAnswer2 = Int32.Parse("42");
}
catch {
Console.WriteLine("String not Convertable to an Integer");
}
방법 3
int TheAnswer3 = 0;
try {
TheAnswer3 = Int32.Parse("42");
}
catch (FormatException) {
Console.WriteLine("String not in the correct format for an Integer");
}
catch (ArgumentNullException) {
Console.WriteLine("String is null");
}
catch (OverflowException) {
Console.WriteLine("String represents a number less than"
+ "MinValue or greater than MaxValue");
}
이 코드는 Visual Studio 2010에서 작동합니다.
int someValue = Convert.ToInt32(TextBoxD1.Text);
이것은 나를 위해 작동합니다 :
using System;
namespace numberConvert
{
class Program
{
static void Main(string[] args)
{
string numberAsString = "8";
int numberAsInt = int.Parse(numberAsString);
}
}
}
C # v.7에서는 추가 변수 선언없이 인라인 출력 매개 변수를 사용할 수 있습니다.
int.TryParse(TextBoxD1.Text, out int x);
out
현재 C #으로 낙담 매개 변수?
이것은 당신을 도울 수 있습니다; D
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
float Stukprijs;
float Aantal;
private void label2_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("In de eersre textbox staat een geldbedrag." + Environment.NewLine + "In de tweede textbox staat een aantal." + Environment.NewLine + "Bereken wat er moetworden betaald." + Environment.NewLine + "Je krijgt 15% korting over het bedrag BOVEN de 100." + Environment.NewLine + "Als de korting meer dan 10 euri is," + Environment.NewLine + "wordt de korting textbox lichtgroen");
}
private void button1_Click(object sender, EventArgs e)
{
errorProvider1.Clear();
errorProvider2.Clear();
if (float.TryParse(textBox1.Text, out Stukprijs))
{
if (float.TryParse(textBox2.Text, out Aantal))
{
float Totaal = Stukprijs * Aantal;
string Output = Totaal.ToString();
textBox3.Text = Output;
if (Totaal >= 100)
{
float korting = Totaal - 100;
float korting2 = korting / 100 * 15;
string Output2 = korting2.ToString();
textBox4.Text = Output2;
if (korting2 >= 10)
{
textBox4.BackColor = Color.LightGreen;
}
else
{
textBox4.BackColor = SystemColors.Control;
}
}
else
{
textBox4.Text = "0";
textBox4.BackColor = SystemColors.Control;
}
}
else
{
errorProvider2.SetError(textBox2, "Aantal plz!");
}
}
else
{
errorProvider1.SetError(textBox1, "Bedrag plz!");
if (float.TryParse(textBox2.Text, out Aantal))
{
}
else
{
errorProvider2.SetError(textBox2, "Aantal plz!");
}
}
}
private void BTNwissel_Click(object sender, EventArgs e)
{
//LL, LU, LR, LD.
Color c = LL.BackColor;
LL.BackColor = LU.BackColor;
LU.BackColor = LR.BackColor;
LR.BackColor = LD.BackColor;
LD.BackColor = c;
}
private void button3_Click(object sender, EventArgs e)
{
MessageBox.Show("zorg dat de kleuren linksom wisselen als je op de knop drukt.");
}
}
}