C# DataGridView统计Ri列指定数值范围内的数据数量问题
嘿,我来帮你解决这个DataGridView的数值统计问题!首先先明确几个关键点:你提到的「处于0.9和0.1这个范围内」应该是指数值在0.1到0.9之间(包含两端)对吧?另外注意你的数据里用的是逗号作为小数分隔符,比如0,6其实就是标准格式的0.6,这个在代码里要处理好。
解决DataGridView中Ri列数值范围统计问题
核心思路
我们需要遍历DataGridView1的Ri列,过滤掉非数值的行,把符合格式的字符串转成数值后,判断是否在目标范围内,最后统计符合条件的数量。
C# 代码实现(WinForms场景)
int validCount = 0; // 指定支持逗号作为小数分隔符的文化信息,适配你的数据格式 var decimalCulture = new System.Globalization.CultureInfo("es-ES"); foreach (DataGridViewRow row in DataGridView1.Rows) { // 跳过DataGridView的空白新行 if (row.IsNewRow) continue; string cellContent = row.Cells["Ri"].Value?.ToString().Trim(); // 跳过空值或空白单元格 if (string.IsNullOrEmpty(cellContent)) continue; // 尝试将字符串转换为double类型,处理逗号分隔符 if (double.TryParse(cellContent, System.Globalization.NumberStyles.Float, decimalCulture, out double riValue)) { // 判断是否在0.1到0.9之间(包含两端),如果是其他范围逻辑可以修改这里的条件 if (riValue >= 0.1 && riValue <= 0.9) { validCount++; } } // 像"double valor1"这类非数值的行会自动跳过 } // 输出统计结果,你也可以把结果显示在Label或者其他控件里 MessageBox.Show($"符合条件的数值数量:{validCount}");
针对你提供的测试数据的结果
你的测试数据里的有效数值是:0,6、0,4、0,9、0,1、1,8,其中符合0.1-0.9范围的是前4个,运行代码后会得到统计结果4。如果你的需求是不包含两端的范围(即大于0.1且小于0.9),只需要把判断条件改成riValue > 0.1 && riValue < 0.9,结果就会变成2。
内容的提问来源于stack exchange,提问作者David Velez Mesa




