You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

C# DataGridView统计Ri列指定数值范围内的数据数量问题

嘿,我来帮你解决这个DataGridView的数值统计问题!首先先明确几个关键点:你提到的「处于0.9和0.1这个范围内」应该是指数值在0.1到0.9之间(包含两端)对吧?另外注意你的数据里用的是逗号作为小数分隔符,比如0,6其实就是标准格式的0.6,这个在代码里要处理好。

解决DataGridView中Ri列数值范围统计问题

核心思路

我们需要遍历DataGridView1Ri列,过滤掉非数值的行,把符合格式的字符串转成数值后,判断是否在目标范围内,最后统计符合条件的数量。

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,60,40,90,11,8,其中符合0.1-0.9范围的是前4个,运行代码后会得到统计结果4。如果你的需求是不包含两端的范围(即大于0.1且小于0.9),只需要把判断条件改成riValue > 0.1 && riValue < 0.9,结果就会变成2

内容的提问来源于stack exchange,提问作者David Velez Mesa

火山引擎 最新活动