DataGridView无效的强制转换异常

时间:2013-04-25 04:48:56

标签: c# datagridview casting

我正在尝试根据一个单元格的值计算百分比到另一个单元格值。数据看起来像这样,只是更大,但想法是一样的:

     c1    c2    c3   tot

r1    1     0     3     4

r2    1     2     1     4  

r3    0     0     1     1

tot   2     2     5     

任何单元格中的所有值都只是整数。我正在尝试创建一个如下所示的表:

     c1    c2    c3

r1    0.25  0     0.75

r2    0.25  0.50  0.25

r3    0     0     1

我不需要帮助创建表 - 我实际上可以创建表 - 我只是不能正确地使用正确的(百分比)数据来填充表。我有以下代码:

for (int i = 7; i < 12; i++)
{
  for (int j = 0; j < 7; j++)
  {
    double hold1 = (double)gridHolder.Rows[i - 7].Cells[j + 1].Value;
    double hold2 = (double)gridHolder.Rows[i - 7].Cells[8].Value;
    gridHolder.Rows[i].Cells[j + 1].Value = hold1 / hold2;
  }
}

gridHolder是表格的名称,如果不明显的话。

当我运行它时,我得到了这个例外:

An unhandled exception of type 'System.InvalidCastException' occurred in PCHG Simulator.exe

Additional information: Specified cast is not valid.

如何将单元格的内容转换为decimaldouble,以便除法成为十进制结果?如果你还可以解释如何将结果格式化为2位小数,那就太好了,但我确信我可以解决这个问题。

编辑:我不知道是否值得注意,但是,如果我为每个投放int

int hold1 = (int)gridHolder.Rows[i - 7].Cells[j + 1].Value;
int hold2 = (int)gridHolder.Rows[i - 7].Cells[8].Value;

它的工作正常,除了明显的问题,即除法变为整数除法而不是十进制除法。所以问题显然与我试图加入双重方式有关。

1 个答案:

答案 0 :(得分:2)

尝试使用Convert.ToDouble(value)