Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在计算C中的数字和时存在问题#_C#_Visual Studio - Fatal编程技术网

C# 在计算C中的数字和时存在问题#

C# 在计算C中的数字和时存在问题#,c#,visual-studio,C#,Visual Studio,我的任务是计算C#中的数字之和。以本例为例。我想计算“12345”的和,即:1+2+3+4+5=15。但代码执行后的结果是:53。代码中有什么错误 static void Main(string[] args) { string inputNumber = "12345"; int sum =0; Console.WriteLine("Please Enter Your Desired Number"); for (int i = 0; i < 5; i

我的任务是计算C#中的数字之和。以本例为例。我想计算“12345”的和,即:1+2+3+4+5=15。但代码执行后的结果是:53。代码中有什么错误

static void Main(string[] args)
{
    string inputNumber = "12345";

    int sum =0;
    Console.WriteLine("Please Enter Your Desired Number");

    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine(inputNumber[i]);
        sum = sum + Convert.ToInt32(inputNumber[i]);

        Console.WriteLine(sum);
    }
}
static void Main(字符串[]args)
{
字符串inputNumber=“12345”;
整数和=0;
Console.WriteLine(“请输入所需号码”);
对于(int i=0;i<5;i++)
{
控制台写入线(输入编号[i]);
sum=sum+转换为32(输入编号[i]);
控制台写入线(总和);
}
}
对不起,回答错了

这就是问题所在:

Convert.ToInt32(inputNumber[i].ToString());
如果不将其转换为字符串,则它是一个字符。
将字符转换为int将给出其ASCII值。

字符
转换为
int
与将
字符串
转换为
int
对于
字符
,使用ASCII值

sum = sum + Convert.ToInt32(inputNumber[i].ToString());
如果您将
字符
转换为
字符串
,它将执行您希望它执行的操作。

您的问题是“convert.ToInt32”返回ascii值,您正在查找数值,您的代码可能如下所示:

sum = sum + Convert.ToInt32(Char.GetNumericValue(inputNumber[i]));
有关GetNumericValue的更多信息,请访问以下链接:

这一行的输出是什么:
Console.WriteLine(inputNumber[i])
?将
Convert.ToInt32(1)
的输出与
Convert.ToInt32('1')
的输出进行比较。在将字符转换为int:sum=sum+Convert.ToInt32(inputNumber[i].tostring())之前,只需调用tostring即可;如果您想确定是否可以使用
Int32.Parse()
,我会添加这一点,因为如果您尝试输入字符,它将抛出一个错误。@vvilin:我对这种方法持怀疑态度。并不是说它不起作用,而是
Convert.ToFoo
通常比
Foo.Parse
更适合使用。感谢您的回复。它帮助我解决了这个问题。