我在将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];
}
}
[将char
乘以int
时,char
首先将转换为其字符代码。 '1'
的字符代码为49
,5*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
}