1

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

     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.

如何将单元格的内容转换为decimalordouble以便除法将是十进制结果?如果您还可以解释如何将结果格式化为小数点后 2 位,那就太好了,但我相信我可以通过其他方式解决这个问题。

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

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

它工作得很好,除了除法变成整数除法而不是小数除法的明显问题。所以问题显然出在我试图转换成双倍的方式上。

4

1 回答 1

2

尝试使用 Convert.ToDouble(value)

于 2013-04-25T04:55:28.567 回答