C#在ListView中计算单个列并将其显示在标签中
我有一个可以成功导出和导入的ListView。我的问题是,我需要计算付款列(ListView中的最后一列)并在标签中显示结果。但是,我得到一个“输入字符串格式不正确”错误 这是我的密码:C#在ListView中计算单个列并将其显示在标签中,c#,listview,label,data-conversion,C#,Listview,Label,Data Conversion,我有一个可以成功导出和导入的ListView。我的问题是,我需要计算付款列(ListView中的最后一列)并在标签中显示结果。但是,我得到一个“输入字符串格式不正确”错误 这是我的密码: private void DisplayWeeklyEarnings() { decimal total =0; foreach (ListViewItem item in lvTimeSheet.Items) { total +
private void DisplayWeeklyEarnings()
{
decimal total =0;
foreach (ListViewItem item in lvTimeSheet.Items)
{
total += Convert.ToDecimal(item.SubItems[4].Text);
}
lblEarnings.Text = String.Format("{0:C2}", total);
}
我还尝试:
total += Decimal.Parse(item.Subitems[4].Text);
其他国家建议使用:
total += Decimal.Parse(item.Subitems(4).Text);
然而,这给了我一个关于使用子项作为方法的错误。显然这是错误的
这是我的脸:
以下是填写了“付款”列的表格:
任何帮助都将不胜感激。提前感谢。您的最后一列包含货币符号。如果您使用decimal.Parse的适当重载,则可以解析此内容
total += decimal.Parse(item.SubItems[4].Text, NumberStyles.Currency);
如果您的最后一列包含一个不能解析的值,也不能用十进制的重载解析(例如,一个空白值),那么考虑使用
decimal d;
if(decimal.TryParse(item.SubItems[4].Text, NumberStyles.Currency, CultureInfo.CurrentCulture, out d))
total += d;
如果您对输入没有完全控制权,则TryParse更安全,因为它不会在输入格式错误时引发异常。您的最后一列包含货币符号。如果您使用decimal.Parse的适当重载,则可以解析此内容
total += decimal.Parse(item.SubItems[4].Text, NumberStyles.Currency);
如果您的最后一列包含一个不能解析的值,也不能用十进制的重载解析(例如,一个空白值),那么考虑使用
decimal d;
if(decimal.TryParse(item.SubItems[4].Text, NumberStyles.Currency, CultureInfo.CurrentCulture, out d))
total += d;
如果您没有对输入的完全控制权,TryParse会更安全,因为它不会在输入格式错误时引发异常。第一个非常有效。谢谢你的帮助。第一个很有效。谢谢你的帮助。