1

I try to tell the user that ,whenever he types in a string instead of an integer, he/she should type in a number.But somehow the code within the if statement never shows up.

    private static void Number()
    {
        Console.Write("Type it in a number: ");
        int result = int.Parse(Console.ReadLine());
        if (float.IsNaN(result))
        {
            Console.WriteLine("Please type a number!");
        }
        else
        {
            Console.Write("Hi");
        }
        Console.ReadLine();
    }
Mostafiz
  • 7,243
  • 3
  • 28
  • 42
Ryepower
  • 151
  • 1
  • 1
  • 7

3 Answers3

4
private static void Number()
{
    Console.Write("Type it in a number: ");
    int result;
    bool parsedSuccessfully = int.TryParse(Console.ReadLine(), out result);

    if (parsedSuccessfully == false)
    {
        Console.WriteLine("Please type a number!");
    }
    else
    {
        Console.Write("Hi");
    }
    Console.ReadLine();
}
LittleDebugger
  • 264
  • 1
  • 5
1

You can do by int.TryParse for that

private static void Number()
    {
        Console.Write("Type it in a number: ");
        int result;
        if (int.TryParse(Console.ReadLine(), out result))
        {
             // user input a valid integer
             // result varaible have the input integer
             Console.Write("Hi");
        }
        else
        {
           // user input none integer
           Console.WriteLine("Please type a number!");
        }
        Console.ReadLine();
    }
Mostafiz
  • 7,243
  • 3
  • 28
  • 42
-1

Try using TryParse method to validate the entered string , you can also use

int.TryParse

Code :

private static void ValidateInput() {

  Console.Write("Type the number: ");
  string userInput = Console.ReadLine();

  int result;
  bool isValidNumber = Int32.TryParse(userInput, out result);

  Console.WriteLine(isValidNumber ? "Hi, You have entered a valid number" : "Entered value is not a vald number, so please type a number!");

  Console.ReadLine();
}
Venkat
  • 2,549
  • 2
  • 28
  • 61