1

我在下面得到了这段代码,它应该将两个变量相乘并从 textbox 添加到它的数量kpriplac。但是当乘法值为 10 并且 kpriplac 值例如也是 10 时,输出为 1010。但我需要该输出为 20。我也检查了这个

我在哪里犯错?感谢您花时间阅读本文。

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

5 回答 5

2

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

例如:

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

编辑

请确保kpriplac.Text

  • 不为空
  • 不只包含空格
  • 不包含字符或不可转换的字符串。

如果是则进行相应处理。

转换类 Msdn

于 2013-07-22T09:22:44.067 回答
2

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

您还需要将 in 的值解析为数字类型,这与您对andkpriplac.Text所做的方式大致相同。comboBoxTexttextBox16.Text

于 2013-07-22T09:24:23.573 回答
1

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

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

于 2013-07-22T09:24:27.590 回答
1

你面对这个是因为

 (comboxValue * textboxValue)

是一个整数,而

 kpriplac.Text 

是一个字符串

在 C# 中字符串 + int = 字符串。 因此,假设乘法返回 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();
 }
于 2013-07-22T09:29:12.997 回答
0

尝试这个

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

于 2013-07-22T09:23:33.907 回答