int totalValue = 0;
totalValue = int.Parse(Label9.Text) * int.Parse(Label6.Text);
Label8.Text = totalValue.ToString();
你好程序员。我无法弄清楚为什么上面这行没有用。上面的行给出了一个运行时错误,说明了; 输入字符串的格式不正确。
答案 0 :(得分:2)
正如我在其他问题中发布的那样,尝试使用int.tryParse()
代替,如果出现问题,它只返回0而不是该异常
int a;
int b;
int.TryParse("a",out a);
int.TryParse("5",out b);
int totalValue = a * b;
Console.WriteLine(totalValue.ToString());
此代码将“0”写入控制台,因为它无法将“a”解析为字符串
int a;
int b;
int.TryParse("5",out a);
int.TryParse("5",out b);
int totalValue = a * b;
Console.WriteLine(totalValue.ToString());
此代码将“25”写入控制台,因为它可以将“5”解析为整数
答案 1 :(得分:1)
这意味着一个或两个输入字符串的解析格式不正确。
检查Label9
和Label6
中包含的值,确保其格式和范围正确。
或者,将其作为转换过程的一部分进行检查:
string str = "xyzzy";
int num;
bool ok = int.TryParse (str, out num);
if (!ok) {
// Generate error and return.
}
// Use num for whatever.
对于您的特定代码,您可以使用类似的内容(包括表单上的错误指示符):
int num1, num2, prod = 0;
LabelErr.Text = "";
if (int.TryParse (Label9.Text, out num1) && int.TryParse (Label6.Text, out num2))
prod = num1 * num2;
else
LabelErr.Text = "One or both input values are invalid";
Label8.Text = prod.ToString();
答案 2 :(得分:1)
如果不可能,您应该尝试解析值并显示错误,如下所示。
int totalValue = 0;
int firstValue, secondValue;
if (!int.TryParse(Label9.Text, out firstValue))
throw new Exception("Text of label 9 wasn't a number);
if (!int.TryParse(Label6.Text, out secondValue))
throw new Exception("Text of label 6 wasn't a number);
totalValue = firstValue * secondValue;
Label8.Text = totalValue.ToString();