c# - 将另一列的两列datagridview单元格值相乘,然后将所有行的值相加
问题描述
我有这个datagridview,我用这段代码对所有时间的张力值求和:
int finalSum = 0;
for (int p = 0; p < dataGridView1.Rows.Count; ++p)
{
finalSum += getCellDigitSum(Convert.ToInt32(dataGridView1.Rows[p].Cells[4].Value));
}
label22.Text = finalSum.ToString();
int getCellDigitSum(int cellValue)
{
int l = cellValue;
int result = 0;
while (l > 0)
{
result += (l % 10);
l = l / 10;
}
return result;
}
使用此代码,我获得单个值的总和(201 变为 3),然后是所有行的总和。
问题是我需要首先将“Ripetizioni”值乘以“Serie”列值,然后将结果乘以“紧张时间”的多位数字之和(201 将是 3),最后乘以结果对于所有行。
所以例如在第一行我需要做 11 x 3 = 结果 x (201 sum so 3)。
循环所有行并计算值的总和
解决方案
请试试这个。如果您遇到任何问题,请告诉我。可根据需要修改计算。
int finalSum = 0;
for (int p = 0; p < dataGridView1.Rows.Count; ++p)
{
finalSum += getCellDigitSum(dataGridView1.Rows[p]);
}
//label22.Text = finalSum.ToString();
int getCellDigitSum(DataGridViewRow dr)
{
int serie = Convert.ToInt32(dr.Cells[0].Value);//you can change cell index or use column name
int ripetizioni = Convert.ToInt32(dr.Cells[1].Value);//you can change cell index or use column name
//timeundertension
int l = Convert.ToInt32(dr.Cells[3].Value);
int sumTimeUnderTension = 0;
int result = 0;
while (l > 0)
{
sumTimeUnderTension += (l % 10);
l = l / 10;
}
result = serie * ripetizioni * sumTimeUnderTension;
return result;
}
推荐阅读
- java - RegEx 用于匹配未跟随特定模式的数字
- python - 将空列表分配给变量的 Pythonic 方法是什么?
- java - 如何使用 mockmvc 从嵌套异常中获取底部错误消息
- reactjs - 如何正确确保 onChange 方法的类型安全?
- python - Doctest 认为 DocTestParser 不存在?
- angular - 当 HTML 中提到函数名称时,角度验证不起作用
- c - 将 C 代码中的左大括号移动到下一行?
- javascript - 基于“h2”标签对子元素进行排序
- c# - 当查询字符串包含 IIS 10 上托管的 WebApi 的 com1 时出现 404 错误
- javascript - 根据特定列数据创建选择 - 使用 javascript