+运算符c#,带字符串

时间:2013-07-22 09:20:02

标签: c# math operator-keyword

我在下面有这个代码,它应该将两个变量相乘,并从文本框kpriplac中添加它。但是当乘法值为10且kpriplac值例如也为10时,输出为1010.但我需要输出为20.我还检查了this

我在哪里犯错?感谢您抽出宝贵时间阅读本文。

if (double.TryParse(comboBoxText, out comboxValue) && int.TryParse(textBox16.Text.Trim(), out textboxValue))
{
    textBox19.Text = ((comboxValue * textboxValue) + (kpriplac.Text)).ToString();
}

5 个答案:

答案 0 :(得分:2)

带有字符串的

+运算符作为连接运算符运行。您需要将字符串解析为int或float。

例如:

textBox19.Text = ((comboxValue * textboxValue) + Convert.ToInt32(kpriplac.Text)).ToString();

修改

请确保kpriplac.Text是:

  • 不是空的
  • 不仅包含空格
  • 不包含字符或不可转换的字符串。

如果然后相应处理。

Convert Class Msdn

答案 1 :(得分:2)

目前,您的代码正在为字符串添加一个数字,该字符串隐式调用ToString()表达式上的(comboxValue * textboxValue)执行字符串连接

您还需要将kpriplac.Text中的值解析为数字类型,其方式与comboBoxTexttextBox16.Text的方式非常相似。

答案 2 :(得分:1)

你需要在每个字符串上调用int.Parse,然后将解析后的值相加或相加,最后将它们转换回字符串。

仅当您确定给定字符串确实是整数时才使用int.Parse。如果不是,则抛出异常。如果您不确定并希望手动处理它们,请改用int.TryParse。

答案 3 :(得分:1)

你面对这个是因为

 (comboxValue * textboxValue)

整数,而

 kpriplac.Text 

字符串

在C#string + int = string。 所以让我们说乘法会让你返回10.你的文本框中也有10个

所以会发生什么

        10 + "10"  = 1010

将您的代码更改为

 if (double.TryParse(comboBoxText, out comboxValue) && int.TryParse(textBox16.Text.Trim(), out textboxValue))
 {
    int tempValue = 0;
    if(int.TryParse(kpriplac.Text,out tempValue))
         textBox19.Text = ((comboxValue * textboxValue) + tempValue).ToString();
 }

答案 4 :(得分:0)

试试这个

  

Convert.ToInt32(((comboxValue * textboxValue)+(kpriplac.Text)))。ToString();