从C#中的数组乘以chars

问题描述 投票:0回答:1

我在将char值与整数相乘时遇到问题。我得到了非常大的价值,而不是正确的价值。最终在这里= 32487000,但是为什么。当我检查数组的值时,我看到它添加了'51','50'等...

我尝试了很多方法来转换它,每次遇到相同问题时都可以...

我将非常感谢任何想法。

static void Main(string[] args) {
    int final = 5;
    char[] arr = new char[]{'1', '2', '3', '4'}

    for (int i = 0; i < arr.Length; i++) {
      final = final * arr[i];
    } 
}
c# arrays unicode char multiplying
1个回答
4
投票

[将char乘以int时,char首先将转换为其字符代码。 '1'的字符代码为495*49为245。在整个循环中都会发生此问题。相反,您想将char解析为int,然后再将其乘以final

int num = int.Parse(arr[i].ToString());

一旦您拥有数字形式的字符,您可以将其相乘:

public static void Main(string[] args) {
    int final = 5;
    char[] arr = new char[]{'1', '2', '3', '4'};

    for (int i = 0; i < arr.Length; i++) {
      int num = int.Parse(arr[i].ToString()); // convert to int
      final = final * num;
    } 
    Console.WriteLine(final); // 120
}
© www.soinside.com 2019 - 2024. All rights reserved.