Проблема с оператором if и отрицательным целым числом

Действительно новичок в C#. Я хочу проверить, является ли целое число (вход от пользователя) положительным, отрицательным или нулевым. Он работает с положительным числом и нулем, но не при вводе отрицательного числа!

Я пытался изменить тип ввода с пользовательского на int, float, decimal, double и так далее, но ничего не работает. Также попробовал switch-Statement. Я использую Visual Studio и отлаживаю в терминале Mac, это может быть проблемой? Я могу использовать отрицательные числа при написании другого кода, такого как математические задачи и так далее.

Console.Write("Enter a number: ");   
int number = int.Parse(Console.ReadLine());   
if (number == 0)   
{
     Console.Write("zero");
}
else if (number < 0)
{
    Console.Write("negative");
}
else
{       
     Console.Write("positive");

(Я также пытался с оператором switch:)

Console.Write("Enter a number: ");
int number = int.Parse(Console.ReadLine());
switch(number)   
{   
     case 0: Console.Write("zero"); break;    
     case -1: Console.Write("negative"); break;    
     case 1: Console.Write("positive"); break;    
}

В обоих случаях я получаю правильный вывод при вводе положительного числа или 0, но при вводе отрицательного числа я получаю сообщение об ошибке: "строка ввода была в неправильном формате"

1 ответ

Решение

Это должно работать, потому что int здесь Int32 диапазон от -2 147 483 648 до 2 147 483 647. Если вы вводите любое число в этом диапазоне, оно должно работать. Для числа вне этого диапазона вы получите "значение слишком маленькое или слишком большое". Пожалуйста, поделитесь номером, который вы вводите

Другие вопросы по тегам