我正在尝试将所有学生的课程价值相加,以得出平均值。这些值已保存到数据库中,但是当我尝试将这些值添加在一起并插入到文本框中时,会将两个值都插入到文本框中,而不是将这些值添加在一起。
string output = "";
output += (dr["Course 1"].ToString());
output += (dr["Course 2"].ToString());
txtbxaverage.Text = output;
}
答案 0 :(得分:2)
带字符串的运算符“ +”用于连接,而不是加法。简单起见:“ 3” +“ 4”!=“ 7”,“ 3” +“ 4” =“ 34”。
现在,如果要计算一系列字符串的总和,您可以做的是声明一个从0开始的变量,并将每个转换为int的字符串添加到该变量中。像这样:
int result = 0;
result += Convert.ToInt32(dr["Course 1"].ToString());
result += Convert.ToInt32(dr["Course 2"].ToString());
//And so on
另外,如果dr是一个数组,则可以使用for或foreach循环遍历它们,而不是对数组中的每个值都使用一行:
for (int i = 0; i < dr.length; i++)
{
result += Convert.ToInt32(dr[i].ToString());
}
如果dr是整数或其他数字类型的数组,则无需使用ToString函数。改为这样做:
result += dr[i];
答案 1 :(得分:0)
将2个字符串加在一起时,会将它们串联在一起。
“ Hello” +“ _World” =“ hello_World”
您要
string output = "";
output += dr["Course 1"];
output += dr["Course 2"]);
txtbxaverage.Text = output.ToString();
将整数加在一起后,才调用“ ToString()”。
答案 2 :(得分:0)
我会这样
txtbaverage.Text = $"{decimal.Parse(dr["Course 1"])+decimal.Parse(dr["Course 2"])}";
字符串+字符串等效于
"1" + "1" == "11"
十进制+等于的十进制
1 + 1 == 2
所以您需要进行转换
decimal.Parse("1") + decimal.Parse("1") == 2
如果dr [“ Course 1”]是一个对象,则直接投射(十进制)dr [“ Course 1”]会将其转换为十进制,然后可以添加
答案 3 :(得分:0)
如评论中所述,对字符串使用'+'将它们连接起来,即“ Foo” +“ Bar”将为您提供“ FooBar”。根据您的情况,您需要执行的操作取决于dr[]
数组中存储的类型。如果数组存储整数,则可以直接将其直接添加,如下所示:
string output = "";
int sum = dr["Course 1"] + dr["Course 2"];
output = sum.ToString();
如果数组存储的是float或double,则它是相同的,除了必须声明sum
作为适当的类型。
如果数组存储字符串,则需要在进行求和之前解析它们,如下所示:
string output = "";
int sum = 0;
int value1, value2;
int.TryParse(dr["Course 1"], out value1);
int.TryParse(dr["Course 2"], out value2);
sum = value1 + value2;
output = sum.ToString();