添加三个数字与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?
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"