C# 存储在变量中的错误值

Val*_*ale 2 c# console

我对编程相当陌生,所以有一些怜悯;) 我正在尝试构建一个程序,该程序可以在 c# 中求解方程并给出梯度等,因此我可以逐渐使它变得更加复杂。问题是,当我尝试开始构建它时,我的输入似乎有一个错误的值。

控制台:给定“a”的值:9 输出:57

我的代码:

using System;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Input an linear Eqasion in the following Pattern -- a * x + b");
            Console.Write("Given value for \"a\":");
            decimal aValue;
            aValue = Console.Read();
            Console.Write(aValue);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*vid 5

Console.Read()返回一个int,但不是你想的那样。它返回输入字符的数值,而不是对碰巧是数字的字符的人类直觉解释。例如,考虑如果您键入一个字母或任何其他非数字字符,它将返回什么。

字符的数字(十进制)值是'9'多少? 57是。

听起来您想阅读行,而不是字符。例如:

string aValue;
aValue = Console.ReadLine();
Console.Write(aValue);
Run Code Online (Sandbox Code Playgroud)

请记住,您需要按回车键将行发送到应用程序。

如果您稍后需要该值是数字,您仍然需要输入字符串但需要解析它。例如:

string aValue;
aValue = Console.ReadLine();
if (decimal.TryParse(aValue, out decimal numericValue)
{
    Console.Write(numericValue);
}
else
{
    // The value could not be parsed as a decimal, handle this case as needed
}
Run Code Online (Sandbox Code Playgroud)

  • @CompanyDroneFromSector7G:同意,我只是与OP现有的编码风格保持一致。就我个人而言,我什至只使用“var”,因为对我来说“ReadLine”已经带有作为字符串的清晰语义。 (2认同)