添加三个数字与textBox

本文关键字:数字 textBox 三个 添加 | 更新日期: 2023-09-27 18:07:11

我有一个textbox1 2和3。在textbox1中数字为0,在2中数字为1,在3中数字为2并使用此代码

textBox4.Text = "" + 
  (int.Parse(textBox1.Text) + 
  (int.Parse(textBox2.Text + 
  (int.Parse(textBox3.Text)))));

,但结果是012..全部给你,3?

添加三个数字与textBox

int result = 
  int.Parse(textBox1.Text) + 
  int.Parse(textBox2.Text) + 
  int.Parse(textBox3.Text);
textBox4.Text = result.ToString();

试试这个

这里发生的事情是从左到右计算总和,这导致执行与您期望的不同类型的加法。在c#中,你可以添加两个字符串。如果你把"foo"加到"bar",就会得到字符串"foobar"。如果你将一个字符串和一个数字相加,那么它会将数字转换成一个字符串,并将两个字符串相加。所以"foo"+13生成"foo13"

在你的例子中发生的事情是相当复杂的。从内部开始,您有:int.Parse(textBox3.Text)。它取textBox3.Text,即"2",并将其转换为数字2。接下来,您执行textBox2.Text + (int.Parse(textBox3.Text),它获得字符串"1",然后将数字2添加到它。这将导致数字2被转换为字符串"2",然后加上"1"+"2",给出字符串"12"作为答案,因为字符串是通过连接它们来添加的。接下来执行int.Parse(textBox2.Text + (int.Parse(textBox3.Text)),它将字符串"12"转换为数字12。您还可以执行int.Parse(textBox1.Text),从而得到数字0。所以现在你要添加"" + 0 + 12。它从左到右执行此操作,首先将""添加到0。这导致0转换为"0", "" + "0"转换为"0"。然后我们添加"0" + 12。当我们这样做时,12被转换为"12", "0"+"12"得到"012"

不需要做大的修改,只要改变括号就可以得到正确的结果。如果在将其中任何一个数字添加到字符串之前将所有数字加在一起,那么您将得到正确的结果。我们可以用括号来完成。

textBox4 = "" + (int.Parse(textBox1.Text) + int.Parse(textBox2.Text) + int.Parse(textBox3.Text));

简而言之,注意以什么顺序发生了什么以及类型是什么是非常重要的,因为添加两个字符串与添加两个数字完全不同。

将"标记放在末尾,这样它会先进行常规数学运算,然后进行字符串转换。

你可以这样写:

int sum=int.Parse(textBox1.Text) + int.Parse(textBox2.Text) + int.Parse(textBox3.Text);
textBox4.Text = String.Format("{0}",sum);

你有两个问题。第一个是开头的"。当您执行第一个+时,textBox1。首先解析文本,然后通过字符串连接操作符再次转换为字符串。我喜欢这样:

textBox4.Text = (int.Parse(textBox1.Text) + int.Parse(textBox2.Text) + int.Parse(textBox3.Text)).ToString();

第二个问题(真正的问题)是在textBox2.Text之后遗漏了一个右括号。通过这种方式,您将首先连接textBox1。Text("1")和int.Parse(textBox2.Text). tostring()("2"),只有在此时才解析结果。如果括号没有丢失,你的代码将给出"3"而不是"012"