I am trying to check if the value of a string variable is double.

I have seen this existing question ([Checking if a variable is of data type double](https://stackoverflow.com/questions/9823836/checking-if-a-variable-is-of-data-type-double)) and it's answers and they are great but I have a different question.

```
public static bool IsDouble(string ValueToTest) 
    {
            double Test;
            bool OutPut;
            OutPut = double.TryParse(ValueToTest, out Test);
            return OutPut;
    }

```

From my code above, when the ValueToTest is "-∞" the output I get in variable Test is "-Infinity" and the method returns true.

When the ValueToTest is "NaN" the output I get is "NaN".

Are they both "-∞" and "NaN" double values in C#?

Also is there a way to check for only real numbers (<https://en.wikipedia.org/wiki/Real_number>) and exclude infinity and NaN?