我在下面有这个代码,它应该将两个变量相乘,并从文本框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();
}
答案 0 :(得分:2)
+
运算符作为连接运算符运行。您需要将字符串解析为int或float。
例如:
textBox19.Text = ((comboxValue * textboxValue) + Convert.ToInt32(kpriplac.Text)).ToString();
请确保kpriplac.Text
是:
如果然后相应处理。
答案 1 :(得分:2)
目前,您的代码正在为字符串添加一个数字,该字符串隐式调用ToString()
表达式上的(comboxValue * textboxValue)
和执行字符串连接。
您还需要将kpriplac.Text
中的值解析为数字类型,其方式与comboBoxText
和textBox16.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();