Question: I'm trying to check if the user's response is a `double` or an `int`, but the `int` is specific, whereas the `double` is not, as I probably made a right mess of explaining it, here's the code:

```
Console.WriteLine("\n 2) Q: How old is Sally? \n");
int nSallyAge = Convert.ToInt32(Console.ReadLine());
double dSallyAge = Convert.ToDouble((nSallyAge));

if (nSallyAge == 62 || dSallyAge == 62.0)
{
    // Increase Score
    sUser1Score++;
    Console.WriteLine("\n A: Correct, Sally's age is 62, you have been awarded 1 point. \n");
    Console.ReadLine();
} 

```

What I'm trying to do, is instead of `dSallyAge` HAS to equal `62.0`, it just has to equal any `double` figure.

Answer: 
I would approach this problem by first creating a method that gets a double from the user (that will, of course, also accept an int). This removes error handling from your main code.

**NOTE** in the code below, `Math.Truncate` can be replaced by `Math.Floor`, with the same result:

```
private static double GetDoubleFromUser(string prompt)
{
    double input;

    while (true)
    {
        if (prompt != null) Console.Write(prompt);
        if (double.TryParse(Console.ReadLine(), out input)) break;
        Console.WriteLine("Sorry, that is not a valid number. Please try again.");
    }

    return input;
}

```

Then, in my main code, I would get the number from the user, and use the `Math.Truncate` method to just read the first part of the double passed in by the user (this is what it sounds like you want to do). This means that if the user enters anything from 62 to 62.0 to 62.999, it will truncate the result to '62':

```
double nSallyAge = GetDoubleFromUser("2) Q: How old is Sally? ");

if (Math.Truncate(nSallyAge) == 62)
{
    // Increase Score
    sUser1Score++;
    Console.WriteLine("A: Correct, Sally's age is 62, you have been awarded 1 point.");
    Console.ReadLine();
} 

```

Other alternative ways to use this are:

```
int sallyAge = Math.Truncate(GetDoubleFromUser("2) Q: How old is Sally? "));

if (sallyAge == 62)
{
    // Increase Score
    sUser1Score++;
    Console.WriteLine("A: Correct, Sally's age is 62, you have been awarded 1 point.");
    Console.ReadLine();
}

```

Or, you could use an input function that returns an int in the first place:

```
private static int GetIntFromUser(string prompt)
{
    return Math.Truncate(GetDoubleFromUser(prompt));
}

```
You should be using `Double.TryParse` to parse the user input to a `double` and then test that value to see whether it's equal to `62.0`.

```
double age;

if (double.TryParse(Console.ReadLine(), out age) && age == 62.0)
{
    // age is 62.
    // ...
}

```