c#控制台程序将6除以2得到27

c# console program divides 6 by 2 and gets 27

在编写项目时,c# 出现问题,它对所有不同的数据类型进行除法和乘法,结果为 27 或 26 或 108,如何解决?!

问题是,代码使用 Console.Read 读取整数,但 Console.Read 从输入流读取下一个字符(不会等待 enter)。当键入 67 时,第一个字符 (6) 将被转换为 int 并立即分配给变量 a,因此 a 得到 54 (ASCII 值)。

将除以 2 结果 27

要解决您的问题,请使用 Console.ReadLine,它会读取字符行。

int a = int.Parse(Console.ReadLine()); // or use `int.TryParse`

Console.Read() 从键盘读取一个字符,并让您将其存储在您想要的位置。您键入了一个 6,这对您来说可能看起来像一个数字,但对计算机来说只是另一个字符,例如 A!&.

字符“6”的 (ASCII) 代码为 54。将其除以 2 得到 27...