我如何用INT减去标签的值

时间:2019-01-30 21:04:56

标签: c#

我将标签设置为数字值。我想做的是单击按钮,然后从标签的值中减去一个数字。当我尝试这个时,我得到下面的错误。 运算符“-”不能应用于字符串类型的操作数。

        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?不知道为什么。

3 个答案:

答案 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-在这种情况下,它不是数学运算符。