Foros del Web » Programación para mayores de 30 ;) » .NET »

Saber si una cadena se puede pasar a número C#

Estas en el tema de Saber si una cadena se puede pasar a número C# en el foro de .NET en Foros del Web. Buenas amigos !!! Pues verán, tengo una variable de tipo String: e.CommandArgument La cual quiero comprobar si el valor se puede convertir a número, es ...
  #1 (permalink)  
Antiguo 07/05/2007, 04:35
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Saber si una cadena se puede pasar a número C#

Buenas amigos !!!

Pues verán, tengo una variable de tipo String:
e.CommandArgument

La cual quiero comprobar si el valor se puede convertir a número, es decir, saber si dicho valor es número o no.

En VB, sé que hay algo como IsNumeric, pero en C# no tengo ni idea...

Bueno, si alguien sabe como solucionar dicha duda, le agradecería me comentase alguna solución.

Muchas gracias a toos y un saludo.
__________________
Charlie.
  #2 (permalink)  
Antiguo 07/05/2007, 07:19
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 2 meses
Puntos: 76
Re: Saber si una cadena se puede pasar a número C#

Y si le haces una conversion?

Código:
try
{
    Convert.ToInteger(dato);
}
catch
{
  MessageBox("No es un numero");
}
Claro que creo que hay otra forma de hacerlo mas optimo y no con ese "truco", en mi caso cuando necesito validar eso lo hago en el evento KeyPress del objeto (textbox en mi caso) y controlando el Handle, si deseas te paso el code para ello.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 07/05/2007, 07:27
Avatar de Yaraher  
Fecha de Ingreso: abril-2007
Ubicación: Lima, Perú
Mensajes: 262
Antigüedad: 17 años
Puntos: 9
Re: Saber si una cadena se puede pasar a número C#

Si es un valor que ha sido ingresado en un Textbox, ¿porqué no evitar todo caracter que no sea letra ahí? Tengo por ahí un snippet que realiza eso.

Y si el valor viene de otro lugar, podrías crear una subclase de String, y agregarlo ésta función:

Código:
public static bool IsNumeric(object string)
{
      bool isNumber;
      double isItNumeric;
      isNumber = Double.TryParse(Convert.ToString(string), System.Globalization.NumberStyles.Any,System.Globalization.NumberFormatInfo.InvariantInfo, out isItNumeric );
      return isNumber;
}
De esa manera, puedes tener tu clase, por decir, NumericString y usar el método

Código:
NumericString.IsNumeric(edad.Text);
De paso te libras de usar el try..catch.. para manejar el flujo del programa

Suerte!
  #4 (permalink)  
Antiguo 07/05/2007, 08:29
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Re: Saber si una cadena se puede pasar a número C#

Bueno, si también vale, muchas gracias.

Mi intención era saber si había algo en C# similar al IsNumeric de VB, para no tener que complicarme tanto, pero ya veo que no lo hay.

Muchas gracias amigos.
__________________
Charlie.
  #5 (permalink)  
Antiguo 07/05/2007, 10:13
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Re: Saber si una cadena se puede pasar a número C#

puedes hacerlo por caracter con "char"

Código:
            for(int x = 0; x <= textBox1.Text.Length-1; x++)
            {
                if (!char.IsDigit(textBox1.Text[x]))
                {
                    MessageBox.Show("Es un caracter");
                    break;
                }
            }
en el caso de este ciclo si encuentra una letra sale del mismo pero antes te muestra un mensaje.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 15:04.