首页 > 解决方案 > C#错误的值存储在变量中

问题描述

我对编程相当陌生,所以请多多关照;)我正在尝试构建一个可以在 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);
        }
    }
}

标签: c#console

解决方案


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

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

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

string aValue;
aValue = Console.ReadLine();
Console.Write(aValue);

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

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

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
}

推荐阅读