Read Information



Inter page address:




I'd like to know on C# how to check if a string is a number (and just a number).

Example :

141241   Yes
            232a23   No
            12412a   No
            

and so on...

Is there a specific function?


Look up double.TryParse() if you're talking about numbers like 1, -2 and 3.14159. Some others are suggesting int.TryParse(), but that will fail on decimals.

double num;
        string candidate = "1";
        if (double.TryParse(candidate, out num))
        {
            // It's a number!
        }
        

EDIT: As Lukas points out below, we should be mindful of the thread culture when parsing numbers with a decimal separator, i.e. do this to be safe:

double.TryParse(candidate, NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture, out num)

If you just want to check if a string is all digits (without being within a particular number range) you can use:

string test = "123";
            bool allDigits = test.All(char.IsDigit);