我有一个任务来计算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);
}
}
答案 0 :(得分:0)
将char
转换为int
不同于将string
转换为int
对于char
,使用ASCII值。 / p>
sum = sum + Convert.ToInt32(inputNumber[i].ToString());
如果将char
转换为string
,它将按照您的期望进行操作。
答案 1 :(得分:0)
您的问题是“ Convert.ToInt32”正在返回ascii值,并且您正在寻找数字值,您的代码可能像这样:
sum = sum + Convert.ToInt32(Char.GetNumericValue(inputNumber[i]));
有关GetNumericValue的更多信息,这里是一个链接: get numeric value msdn
答案 2 :(得分:-2)
对不起,答案错误。
这是问题所在
Convert.ToInt32(inputNumber[i].ToString());
如果不将其转换为字符串,则为字符。 并将char转换为int会给出其ASCII值。