· Andrés Ledo · NET · Lectura en 2 min
C#: Validar si un string es un número
Si estás buscando como validar si un string es un número válido o una fecha has llegado al sitio adecuado.
En C# cada variable tiene obligatoriamente un tipo de dato implícito a diferencia de otros lenguajes como PHP que desconoce el tipo salvo que lo indiquemos.
El motivo por el que C# hace esto es para evitar errores a futuro, ya que mientras estás programando te obliga a realizar las conversiones y tratar que ocurre en caso de que el string no se pueda convertir un número.
Para realizar estas comprobaciones tenemos la función .TryParse que nos permite convertir nuestro string en diversos formatos.
Convertir string a un integer
Si queremos convertir un string a un integer (entero) podemos hacerlo con el siguiente código:
string strNum = "1234";
//Le enviamos strNum que es la variable donde tenemos nuestro número como string
//En caso de que sea un número crea una nueva variable de tipo int llamada num
if(int.TryParse(strNum, out int num))
{
//Es un número valido
Console.WriteLine($"{num} Es un número entero valido");
//num = 1234
}
else
{
//No es un número valido
Console.WriteLine($"{strNum} no es un entero valido");
//num = 0
}
No obstante, si en lugar de «1234» le enviáramos «1234.56» no sería un entero válido, ya que no es un entero y tendríamos que utilizar el tipo decimal.
Convertir string a decimal
Si queremos verificar si un string es un decimal deberemos cambiar el tipo a decimal:
string strNum = "1234,56";
//Le enviamos strNum que es la variable donde tenemos nuestro número como string
//En caso de que sea un número decimal crea una nueva variable de tipo int llamada num
if(decimal.TryParse(strNum, out decimal num))
{
//Es un número valido
Console.WriteLine($"{num} Es un número decimal valido");
//num = 1234.56
}
else
{
//No es un número valido
Console.WriteLine($"{strNum} no es numero decimal valido");
//num = 0
}
En este caso, aunque le enviemos un número entero, lo tratará como válido, ya que un formato decimal no es necesario que tenga decimales.
Para acabar el artículo, si estás pensando en comprar hosting o en comprar dominio Web, déjame recomendarte estos artículos: