无法从';转换;双';到';字符串'->;列表视图子项

本文关键字:列表 gt 视图 #39- 转换 字符串 | 更新日期: 2023-09-27 18:12:59

我真的很难处理这个问题。这段代码假设是求解一个总付款,并将其放入小计TextBox中,但当我试图将其转换为double时(因为价格有decimals(,这就是它所想到的。我试过int,它没有任何问题。

有什么解决方案吗?

double i = 0;
double j = 0;
double k = 0;
i = 0;
j = 0;
k = 0;
try
{
    j = lstvProds.Items.Count;
    for (i = 0; i <= j - 1; i++)
    {
        k = k + Convert.ToDouble(lstvProds.Items[i].SubItems[4].Text);
    }
    //double l = Convert.ToDouble(k);
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
return k;

无法从';转换;双';到';字符串'->;列表视图子项

为了清楚起见,我将注释转换为答案,并详细说明潜在问题:

需要明确的是:问题是编译错误,而不是运行时的异常。

原因如下:

lstvProds.Items[i]

Items[]运算符重载了一个字符串和一个整数参数。integer版本返回第i个元素,字符串版本在列表中查找具有相同名称的匹配项。

这就是错误的原因:"i"是一个double。与整数一起使用,一切都很好。。。

PS:将double解析为字符串可能会导致完全不同的功能。。。