unity two try pass net convertir convert cast asp c# .net string int type-conversion

c# - two - ¿Cómo puedo convertir String a Int?



string to int c# unity (28)

Tengo un TextBoxD1.Text y quiero convertirlo en un int para almacenarlo en una base de datos.

¿Cómo puedo hacer esto?


¡Tenga cuidado al usar Convert.ToInt32 () en un char!
¡ UTF-16 Código UTF-16 del personaje!

Si accede a la cadena solo en una posición determinada utilizando el operador de indexación [i] , devolverá un char y no una string .

String input = "123678"; int x = Convert.ToInt32(input[4]); // returns 55 int x = Convert.ToInt32(input[4].toString()); // returns 7


Como se explica en la Int32.TryParse , TryParse () devuelve un valor booleano que indica que se encontró un número válido:

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 }


Debe analizar la cadena y también debe asegurarse de que esté realmente en el formato de un entero.

La forma más fácil es 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 }


Disfrútala...

int i = 0; string s = "123"; i =int.Parse(s); i = Convert.ToInt32(s);


Este código funciona para mí en Visual Studio 2010:

int someValue = Convert.ToInt32(TextBoxD1.Text);



La conversión de la string a int se puede hacer para: int , Int32 , Int64 y otros tipos de datos que reflejan tipos de datos enteros en .NET

El siguiente ejemplo muestra esta conversión:

Este elemento adaptador de datos de show (para información) se inicializó a valor int. Lo mismo se puede hacer directamente como,

int xxiiqVal = Int32.Parse(strNabcd);

Ex.

string strNii = ""; UsrDataAdapter.SelectCommand.Parameters["@Nii"].Value = Int32.Parse(strNii );

Enlace para ver esta demo .


La forma más sencilla es usar un ayudante de extensión como este:

public static class StrExtensions { public static int ToInt(this string s, int defVal = 0) => int.TryParse(s, out var v) ? v : defVal; public static int? ToNullableInt(this string s, int? defVal = null) => int.TryParse(s, out var v) ? v : defVal; }

El uso es tan simple:

var x = "123".ToInt(); // 123 var y = "abc".ToInt(); // 0 string t = null; var z = t.ToInt(-1); // -1 var w = "abc".ToNullableInt(); // null


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"); }


Prueba esto:

int x = Int32.Parse(TextBoxD1.Text);

o mejor aún:

int x = 0; Int32.TryParse(TextBoxD1.Text, out x);

Además, dado que Int32.TryParse devuelve un valor bool , puede utilizar su valor de retorno para tomar decisiones sobre los resultados del intento de análisis:

int x = 0; if (Int32.TryParse(TextBoxD1.Text, out x)) { // you know that the parsing attempt // was successful }

Si sientes curiosidad, la diferencia entre Parse y TryParse se resume así:

El método TryParse es como el método Parse, excepto que el método TryParse no lanza una excepción si la conversión falla. Elimina la necesidad de usar el manejo de excepciones para probar una excepción FormatException en caso de que s no sea válida y no pueda analizarse con éxito. - Int32.TryParse


Puede convertir una cadena en un valor entero con la ayuda del método de análisis.

P.ej:

int val = Int32.parse(stringToBeParsed); int x = Int32.parse(1234);


Puede hacer lo siguiente a continuación sin TryParse o funciones integradas.

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 ; }


Puedes convertir una cadena a int en C # usando:

Funciones de la clase de conversión, es decir, Convert.ToInt16() , Convert.ToInt32() , Convert.ToInt64() o utilizando las funciones Parse y TryParse . here se dan ejemplos.


Puedes probar esto, funcionará:

int x = Convert.ToInt32(TextBoxD1.Text);

El valor de cadena en la variable TextBoxD1.Text se convertirá en Int32 y se almacenará en x.


Puedes usar cualquiera,

int i = Convert.ToInt32(TextBoxD1.Text);

o

int i =int.Parse(TextBoxD1.Text);


Si bien ya hay muchas soluciones aquí que describen int.Parse , falta algo importante en todas las respuestas. Normalmente, las representaciones de cadena de valores numéricos difieren según la cultura. Los elementos de cadenas numéricas, como los símbolos de moneda, los separadores de grupo (o miles) y los separadores de decimales, varían según la cultura.

Si desea crear una forma sólida de analizar una cadena a un entero, es importante tener en cuenta la información de la cultura. Si no lo hace, se utilizará la configuración de la cultura actual . Eso podría dar a un usuario una sorpresa bastante desagradable, o incluso peor, si está analizando formatos de archivo. Si solo desea el análisis de inglés, es mejor simplemente hacerlo explícito, especificando la configuración de la cultura para usar:

var culture = CultureInfo.GetCulture("en-US"); int result = 0; if (int.TryParse(myString, NumberStyles.Integer, culture, out result)) { // use result... }

Para obtener más información, lea sobre CultureInfo, específicamente NumberFormatInfo en MSDN.


Si está buscando el camino más largo, simplemente cree su 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; }


También puede usar un método de extensión , por lo que será más legible (aunque todos ya están acostumbrados a las funciones Parse normales).

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); } }

Y luego puedes llamarlo así:

  1. Si está seguro de que su cadena es un entero, como "50".

    int num = TextBoxD1.Text.ParseToInt32();

  2. Si no está seguro y quiere evitar choques.

    int num; if (TextBoxD1.Text.TryParseToInt32(out num)) { //The parse was successful, the num has the parsed value. }

Para hacerlo más dinámico, para que también pueda analizarlo para duplicar, flotar, etc., puede hacer una extensión genérica.


esto te puede ayudar; 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."); } } }


la forma en que siempre hago esto es así

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 statment says if the string not a number display an error elce now you will have an intager. } } }

Así es como lo haría, espero que esto ayude. (:


Puedes escribir tu propio método de extesion

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(); } }

Y donde sea en el código solo llame

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

En este caso concreto

int yourValue = TextBoxD1.Text.ParseInt();


//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; }


Convert.ToInt32( TextBoxD1.Text );

Use esto si está seguro de que el contenido del cuadro de texto es un int válido. Una opción más segura es

int val = 0; Int32.TryParse( TextBoxD1.Text, out val );

Esto le proporcionará algún valor predeterminado que puede utilizar. Int32.TryParse también devuelve un valor booleano que indica si fue capaz de analizar o no, por lo que incluso puede usarlo como la condición de una instrucción if .

if( Int32.TryParse( TextBoxD1.Text, out val ){ DoSomething(..); } else { HandleBadInput(..); }


int i = Convert.ToInt32(TextBoxD1.Text);


int myInt = int.Parse(TextBoxD1.Text)

Otra forma sería:

bool isConvertible = false; int myInt = 0; isConvertible = int.TryParse(TextBoxD1.Text, out myInt);

La diferencia entre los dos es que el primero arrojaría una excepción si el valor de su cuadro de texto no se puede convertir, mientras que el segundo simplemente devolvería el valor falso.


int x = 0; int.TryParse(TextBoxD1.Text, out x);

La instrucción TryParse devuelve un valor booleano que representa si el análisis ha tenido éxito o no. Si tuvo éxito, el valor analizado se almacena en el segundo parámetro.

Consulte el Int32.TryParse para obtener información más detallada.


int x = Int32.TryParse(TextBoxD1.Text, out x)?x:0;


int.TryParse()

No tirará si el texto no es numérico.