C# 在计算C中的数字和时存在问题#
我的任务是计算C#中的数字之和。以本例为例。我想计算“12345”的和,即:1+2+3+4+5=15。但代码执行后的结果是:53。代码中有什么错误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
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
更适合使用。感谢您的回复。它帮助我解决了这个问题。