Hur man kontrollerar om en sträng är ett nummer i C#
Steg för att kontrollera om en sträng är ett tal i C#
- Deklarera en heltalsvariabel.
- Skicka strängen till metoderna
int.TryParse()
ellerdouble.TryParse()
med variabelnout
. - Om strängen är ett tal kommer metoden
TryParse
att återge true. Och tilldelar värdet till det deklarerade heltalsvärdetout
värde.
On this page
Kontrollera om en sträng är ett tal eller inte i C#
Vi har till exempel en strängvariabel “123” och om du vill kontrollera om den är numerisk kan du använda nedanstående C#-kod.
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
Från och med C# 7 kan vi deklarera variabeln out i själva TryParse-metoden.
bool isNumber = int.TryParse(stringNumber, out int numericValue);
Problemet med ovanstående int.TryParse
-metod är att den inte kan kontrollera negativa strängnummervärden.
Kontroll av negativa strängnummer i C#
För att kontrollera negativa strängnummervärden kan vi använda C# double.TryParse()
-metoden.
var negativeString = "-123";
double number;
if(double.TryParse(negativeString,out number)){
if (number > 0){
}else{
//negative number
}
}
Bästa sättet att kontrollera om strängen är ett nummer i C#
Använd alltid metoden double.TryParse()
för att kontrollera om en sträng är ett tal, eftersom den kan godkänna både positiva och negativa tal.