Cómo comprobar si una cadena es un número en C#
Pasos para comprobar si una cadena es un número en C#
- Declarar una variable entera.
- Pasar la cadena a los métodos
int.TryParse()
odouble.TryParse()
con la variableout
. - Si la cadena es un número el método
TryParse
devolverá true. Y asigna el valor al valor entero declaradoout
.
On this page
Comprobar si una cadena es un Número o no en C#
Por ejemplo tenemos una variable de cadena “123” y si quieres comprobar si es numérica utiliza el siguiente código C#.
var stringNumber = "123";
int numericValue;
bool isNumber = int.TryParse(stringNumber, out numericValue);
//isNumber is true and numericValue=123
var stringNumber = "123P";
int numericValue;
bool isNumber = int.TryParse(stringNumber, out numericValue);
//isNumber is false and numericValue=0 default value
A partir de C# 7 podemos declarar la variable out en el propio método TryParse.
bool isNumber = int.TryParse(stringNumber, out int numericValue);
El problema con el método anterior int.TryParse
es que no puede comprobar los valores numéricos de cadena negativos.
Comprobación de un número de cadena negativo en C#
Para comprobar los valores negativos de los números de cadena podemos utilizar el método C# double.TryParse()
.
var negativeString = "-123";
double number;
if(double.TryParse(negativeString,out number)){
if (number > 0){
}else{
//negative number
}
}
La mejor manera de comprobar si una cadena es un número en C#
Utilice siempre el método double.TryParse()
para comprobar si una cadena es un número, ya que puede validar tanto números positivos como negativos.