我真的很难过。此代码假设要解决总付款并将其放入小计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;
答案 0 :(得分:0)
为了说清楚,我将我的评论转换为答案并详细阐述了潜在的问题:
要明确:问题是编译错误,而不是运行时的异常。
原因如下:
lstvProds.Items[i]
Items []运算符重载了字符串和整数参数。整数版本返回第i个元素,字符串版本在列表中查找具有相同名称的匹配项。
这就是错误的原因:'我'是双倍的。与整数一起使用,一切都很好......
PS:将double解析为字符串可能导致完全不同的功能......