double.TryParse(GridView1.Rows[i].Cells[3].Text.ToString(), out tempprice);
要注意的是,GridView1.Rows[i].Cells[3].Text.ToString()这是的值如果不为一个有效的数字,那tempprice的值将为0
double.TryParse这个方法便的是bool类型,如果要转换的是有效的数字返回true,转换失败返回false
Convert.ToDouble是将字符型转成双精度类型,而不是日期型,请确定字符串是否为一个有效的双精度类型,比如0.34。
GridView1.Rows[i].Cells[3].Text返回的是数字类型吗,不是数字类型那样写会报错的
看看对应的数据是不是能正确的进行转换吧