c#一直在计算一些不同于它应该计算的东西

c#一直在计算一些不同于它应该计算的东西,c#,C#,在底部我有一个计算(num1=num1+(r[I]*Math.Pow(10,anz1-I-1))。这两个分量都是正确的,但加在一起就没有意义了。有人能帮我吗 Console.Write("Enter your calculation: "); string r = Console.ReadLine(); double num1 = 0; int anz1 = 0; for (int i = 0; i < r.Length; i++) {

在底部我有一个计算(num1=num1+(r[I]*Math.Pow(10,anz1-I-1))。这两个分量都是正确的,但加在一起就没有意义了。有人能帮我吗

    Console.Write("Enter your calculation: ");
    string r = Console.ReadLine();
    double num1 = 0;
    int anz1 = 0;
    for (int i = 0; i < r.Length; i++)
    {
        if (char.IsDigit(r[i]))
        {
            anz1++;
        }
        else
        {
            break;
        }

    }



    for (int i = 0; i < anz1; i++)
    {
        num1 = num1 + (r[i] * Math.Pow(10, anz1 - i - 1));
        Console.WriteLine(num1);
    }

    Console.ReadLine();
Console.Write(“输入您的计算:”);
字符串r=Console.ReadLine();
双num1=0;
int anz1=0;
对于(int i=0;i
用于(int i=0;i
乘以字符的ASCII值:
char
r[i]

示例:
字符'0'转换为ASCII(十进制)格式的数字48
字符'2'转换为ASCII(十进制)格式的数字50
..

在进行任何数值计算之前,应将
.Parse()
Char
转换为
整数

for(int i=0;i

更多信息:

请澄清实际问题是什么,即预期输出是什么,实际输出是什么?此外,还不清楚“组件”是什么意思。您希望得到什么,得到了什么?请提供更多信息。如果您尝试乘以字符r[i]使用double。请添加一个输入X的示例,它应该会产生输出Y,但它会给我输出Z(多个示例会更好)。从代码看,您似乎在尝试制作一些反转数字并将其存储在数字中的东西。因此,我的假设是,问题在于您使用r[i]这是一个字符,编译器足够聪明,可以看到它需要将其转换为int。但是它是基于字符代码进行转换的:。这意味着字符
'0'
的int值为
60
。我的字符串是12345,所以r[i]一开始是1。我用Math.Pow等乘以它,它是10^5。但在某种程度上,c#计算4900000。“ASCII值”:通用术语是“字符代码”。NET使用Unicode字符集的UTF-16字符编码。我没有遇到任何使用ASCII字符集的编程语言。