2016-03-06 48 views
0

我使用金额的datagridview的细胞中,这种代码。总和datagridview的细胞逗号生成格式异常

int sum = 0; 
for (int i = 0; i < dataGridView1.Rows.Count; ++i) 
{ 
sum += Convert.ToInt32 (dataGridView1.Rows[i].Cells[1].Value); 
} 
int count_row = dataGridView1.Rows.Count; 

label1.Text = (sum.ToString()); 

如果我只是使用数字,代码运行良好。然而,当我使用逗号,例如,1,34和2,20,它说,格式异常是未处理的。

+0

如果将'1,332'转换为'Int32',你会发生什么? –

+0

使用十进制不是int – Coding4Fun

回答

1

它是非常简单的,中庸之道与小数做到这一点。

Decimal sum = 0; 
for (int i = 0; i < dataGridView1.Rows.Count; ++i) 
{ 
sum += Convert.Decimal(dataGridView1.Rows[i].Cells[1].Value); 
} 
int count_row = dataGridView1.Rows.Count; 

label1.Text = (sum.ToString()); 
+1

谢谢主席先生解决 – DmO

1

修改行,如下图所示:

sum += Convert.ToInt32 (dataGridView1.Rows[i].Cells[1].Value.ToString().Replace(",","")); 

,它应该用逗号正常工作。

+0

谢谢你,但它说:不包含定义包含 – DmO

0

你可以这样做:

double sum = 0; 
for (int i = 0; i < dataGridView1.Rows.Count; ++i) 
{ 
    sum += double.Parse(dataGridView1.Rows[i].Cells[1].Value.ToString().Replace(',','.')); 
} 
int count_row = dataGridView1.Rows.Count; 

label1.Text = (((int)sum).ToString()); 
+0

对象不包含用于替换的定义,没有扩展方法“替换”接受我刚编辑我的答案类型的对象 – DmO

+0

的第一个参数。请再检查一次。 – Sakura