Come verificare se una stringa è un numero in C#
Passi per verificare se una stringa è un numero in C#
- Dichiarare una variabile intera.
- Passare la stringa ai metodi
int.TryParse()
odouble.TryParse()
con la variabileout
. - Se la stringa è un numero, il metodo
TryParse
restituirà true. E assegna il valore al valore intero dichiaratoout
.
On this page
Controllare se una stringa è un numero o no in C#
Ad esempio, abbiamo una variabile stringa “123” e se vogliamo verificare se è un numero, utilizziamo il seguente codice 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
Da C# 7 in poi possiamo dichiarare la variabile out nel metodo TryParse stesso.
bool isNumber = int.TryParse(stringNumber, out int numericValue);
Il problema del metodo int.TryParse
di cui sopra è che non può controllare i valori negativi dei numeri di stringa.
Controllo dei numeri di stringa negativi in C#
Per verificare la presenza di valori negativi di numeri di stringa, è possibile utilizzare il metodo C# double.TryParse()
.
var negativeString = "-123";
double number;
if(double.TryParse(negativeString,out number)){
if (number > 0){
}else{
//negative number
}
}
Il modo migliore per verificare se una stringa è un numero in C#
Usare sempre il metodo double.TryParse()
per verificare se una stringa è un numero, perché può convalidare sia numeri positivi che negativi.