if 语句和负整数的问题

problem with if-statement and negative integer

对 C# 来说真的很陌生。我想检查一个整数(来自用户的输入)是正数、负数还是零。它适用于正数和零,但当我输入负数时不起作用!

我尝试将输入类型从 user 更改为 int、float、decimal、double 等,但没有任何效果。还尝试了 switch 语句。 我正在使用 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 时都能得到正确的输出,但在输入负数时我会收到错误消息: "input string was not in a correct format"

它应该可以工作,因为这里的 int 是 Int32,范围是 -2,147,483,648 到 2,147,483,647。如果您在此范围内输入任何数字,它应该有效。对于超出此范围的数字,您将得到 "value too small or too large"。 请分享您输入的号码