我将标签设置为数字值。我想做的是单击按钮,然后从标签的值中减去一个数字。当我尝试这个时,我得到下面的错误。 运算符“-”不能应用于字符串类型的操作数。
DateTime start = dateTimePicker2.Value.Date;
DateTime end = dateTimePicker1.Value.Date;
TimeSpan difference = end - start;
int days = difference.Days;
int rdays = Convert.ToInt32(Holidays_Number_lbl.Text);
Holidays_Number_lbl.Text = days.ToString() - rdays.ToString();
如果我将'-'替换为'+'也可以,但是如果标签值为20并且我加1,我得到的结果是120而不是21?不知道为什么。
答案 0 :(得分:5)
您正在尝试减去两个字符串而不是两个整数。试试这个:
int days = difference.Days;
int rdays = Convert.ToInt32(Holidays_Number_lbl.Text);
Holidays_Number_lbl.Text = (days - rdays).ToString();
答案 1 :(得分:4)
您无法减去数据类型为print 2*2*2
的两个变量,因为未为字符串变量定义print(eval("2*2*2"))
。为解决您的异常,请替换以下代码:
string
您还问:
如果我将'-'替换为'+'也可以,但是如果标签值为20并且我加1,我得到的结果是120而不是21?不知道为什么。
为字符串变量定义了-
运算符,当您对两个字符串变量求和时,结果是两个变量的串联,例如:
Holidays_Number_lbl.Text = (days - rdays).ToString();
答案 2 :(得分:3)
您不能对字符串进行数学运算。因此,在之后发生减法之前,不要将它们转换为字符串。
Holidays_Number_lbl.Text = (days - rdays).ToString();
+
起作用的原因是因为它是字符串的concatenation operator-在这种情况下,它不是数学运算符。