Respostas:
Tente o seguinte:
int x = Int32.Parse(TextBoxD1.Text);
ou melhor ainda:
int x = 0;
Int32.TryParse(TextBoxD1.Text, out x);
Além disso, como Int32.TryParse
retorna a, bool
você pode usar seu valor de retorno para tomar decisões sobre os resultados da tentativa de análise:
int x = 0;
if (Int32.TryParse(TextBoxD1.Text, out x))
{
// you know that the parsing attempt
// was successful
}
Se você estiver curioso, a diferença entre Parse
e TryParse
é melhor resumida da seguinte forma:
O método TryParse é como o método Parse, exceto o método TryParse não lança uma exceção se a conversão falhar. Isso elimina a necessidade de usar o tratamento de exceções para testar uma FormatException no caso de s ser inválido e não poder ser analisado com êxito. - MSDN
Int64.Parse()
. Se a entrada não for int, você receberá uma execução e um rastreamento de pilha com Int64.Parse
ou o booleano False
com Int64.TryParse()
, portanto, você precisará de uma instrução if, como if (Int32.TryParse(TextBoxD1.Text, out x)) {}
.
Convert.ToInt32( TextBoxD1.Text );
Use isso se tiver certeza de que o conteúdo da caixa de texto é válido int
. Uma opção mais segura é
int val = 0;
Int32.TryParse( TextBoxD1.Text, out val );
Isso fornecerá algum valor padrão que você pode usar. Int32.TryParse
também retorna um valor booleano indicando se foi capaz de analisar ou não, para que você possa usá-lo como condição de uma if
instrução.
if( Int32.TryParse( TextBoxD1.Text, out val ){
DoSomething(..);
} else {
HandleBadInput(..);
}
int.TryParse()
Não será lançado se o texto não for numérico.
int myInt = int.Parse(TextBoxD1.Text)
Outra maneira seria:
bool isConvertible = false;
int myInt = 0;
isConvertible = int.TryParse(TextBoxD1.Text, out myInt);
A diferença entre os dois é que o primeiro lançaria uma exceção se o valor na sua caixa de texto não puder ser convertido, enquanto o segundo retornaria falso.
code
int NumericJL; bool isNum = int.TryParse (nomeeJobBand, out NumericJL); if (isNum) // O JL retured é capaz de passar para int e, em seguida, prossegue para a comparação {if (! (NumericJL> = 6)) {// Nomear} // else {}}
Você precisa analisar a sequência e também garantir que ela esteja realmente no formato de um número inteiro.
A maneira mais fácil é esta:
int parsedInt = 0;
if (int.TryParse(TextBoxD1.Text, out parsedInt))
{
// Code for if the string was valid
}
else
{
// Code for if the string was invalid
}
Tenha cuidado ao usar Convert.ToInt32 () em um char!
Ele retornará o UTF-16 código do personagem!
Se você acessar a sequência apenas em uma determinada posição usando o [i]
operador de indexação, ela retornará a char
e não 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);
A instrução TryParse retorna um booleano representando se a análise foi bem-sucedida ou não. Se for bem-sucedido, o valor analisado é armazenado no segundo parâmetro.
Consulte Método Int32.TryParse (String, Int32) para obter informações mais detalhadas.
Aproveite...
int i = 0;
string s = "123";
i =int.Parse(s);
i = Convert.ToInt32(s);
Embora já existam muitas soluções aqui que descrevem int.Parse
, há algo importante faltando em todas as respostas. Normalmente, as representações de cadeia de valores numéricos diferem por cultura. Elementos de seqüências numéricas, como símbolos de moeda, separadores de grupos (ou milhares) e separadores decimais, variam de acordo com a cultura.
Se você deseja criar uma maneira robusta de analisar uma string em um número inteiro, é importante levar em consideração as informações da cultura. Caso contrário, as configurações de cultura atuais serão usadas. Isso pode dar ao usuário uma surpresa bastante desagradável - ou pior ainda, se você estiver analisando os formatos de arquivo. Se você deseja apenas analisar o inglês, é melhor simplesmente explicitar, especificando as configurações de cultura a serem usadas:
var culture = CultureInfo.GetCulture("en-US");
int result = 0;
if (int.TryParse(myString, NumberStyles.Integer, culture, out result))
{
// use result...
}
Para obter mais informações, leia CultureInfo, especificamente NumberFormatInfo no MSDN.
Você pode escrever seu próprio método de extensão
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();
}
}
E em qualquer lugar no código, basta ligar
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
Neste caso concreto
int yourValue = TextBoxD1.Text.ParseInt();
StringExtensions
vez de IntegerExtensions
, uma vez que esses métodos de extensão atuam sobre string
e não sobre int
?
Conforme explicado na documentação do TryParse , TryParse () retorna um booleano que indica que um número válido foi encontrado:
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
}
Você pode usar
int i = Convert.ToInt32(TextBoxD1.Text);
ou
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;
}
Você pode converter uma string para int em C # usando:
Funções de classe convertido ou seja Convert.ToInt16()
, Convert.ToInt32()
, Convert.ToInt64()
ou por utilização Parse
e TryParse
funções. Exemplos são dados aqui .
Você também pode usar um método de extensão , para que seja mais legível (embora todo mundo já esteja acostumado às funções regulares do Parse).
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);
}
}
E então você pode chamar assim:
Se você tem certeza de que sua string é um número inteiro, como "50".
int num = TextBoxD1.Text.ParseToInt32();
Se você não tem certeza e deseja evitar falhas.
int num;
if (TextBoxD1.Text.TryParseToInt32(out num))
{
//The parse was successful, the num has the parsed value.
}
Para torná-lo mais dinâmico, você também pode analisá-lo para dobrar, flutuar etc., criando uma extensão genérica.
Conversão string
da int
pode ser feito por: int
, Int32
, Int64
e outros tipos de dados que reflete os tipos de dados inteiros em .NET
O exemplo abaixo mostra esta conversão:
Este elemento do adaptador de dados show (for info) foi inicializado com o valor int. O mesmo pode ser feito diretamente como,
int xxiiqVal = Int32.Parse(strNabcd);
Ex.
string strNii = "";
UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );
Isso faria
string x = TextBoxD1.Text;
int xi = Convert.ToInt32(x);
Ou você pode usar
int xi = Int32.Parse(x);
Consulte Microsoft Developer Network para obter mais informações
Você pode fazer o seguinte abaixo sem as funções TryParse ou embutidas:
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);
Você pode converter string em um valor inteiro com a ajuda do método de análise.
Por exemplo:
int val = Int32.parse(stringToBeParsed);
int x = Int32.parse(1234);
A maneira como sempre faço isso é assim:
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.
}
}
}
É assim que eu faria.
Se você está procurando o caminho mais longo, crie seu único método:
static int convertToInt(string a)
{
int x = 0;
Char[] charArray = a.ToCharArray();
int j = charArray.Length;
for (int i = 0; i < charArray.Length; i++)
{
j--;
int s = (int)Math.Pow(10, j);
x += ((int)Char.GetNumericValue(charArray[i]) * s);
}
return x;
}
MÉTODO 1
int TheAnswer1 = 0;
bool Success = Int32.TryParse("42", out TheAnswer1);
if (!Success) {
Console.WriteLine("String not Convertable to an Integer");
}
MÉTODO 2
int TheAnswer2 = 0;
try {
TheAnswer2 = Int32.Parse("42");
}
catch {
Console.WriteLine("String not Convertable to an Integer");
}
MÉTODO 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");
}
Este código funciona para mim no Visual Studio 2010:
int someValue = Convert.ToInt32(TextBoxD1.Text);
Isso funciona para mim:
using System;
namespace numberConvert
{
class Program
{
static void Main(string[] args)
{
string numberAsString = "8";
int numberAsInt = int.Parse(numberAsString);
}
}
}
Você pode tentar o seguinte. Vai funcionar:
int x = Convert.ToInt32(TextBoxD1.Text);
O valor da string na variável TextBoxD1.Text será convertido em Int32 e será armazenado em x.
No C # v.7, você poderia usar um parâmetro inline out, sem uma declaração adicional de variável:
int.TryParse(TextBoxD1.Text, out int x);
out
parâmetros não são desencorajados em C # agora?
Isso pode ajudá-lo; 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.");
}
}
}