我正在尝试根据一个单元格的值计算百分比到另一个单元格值。数据看起来像这样,只是更大,但想法是一样的:
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.
如何将单元格的内容转换为decimal
或double
,以便除法成为十进制结果?如果你还可以解释如何将结果格式化为2位小数,那就太好了,但我确信我可以解决这个问题。
编辑:我不知道是否值得注意,但是,如果我为每个投放int
:
int hold1 = (int)gridHolder.Rows[i - 7].Cells[j + 1].Value;
int hold2 = (int)gridHolder.Rows[i - 7].Cells[8].Value;
它的工作正常,除了明显的问题,即除法变为整数除法而不是十进制除法。所以问题显然与我试图加入双重方式有关。
答案 0 :(得分:2)
尝试使用Convert.ToDouble(value)