解决方案 »

  1.   

    decimal.Parse(w[3]) * decimal.Parse(w[4]);
    这两个东西其中有一个不能转换成数字
      

  2.   

    要么我们保证数据不会出现转换错误,那就一定能转成decimal就不会出现这种错误,要么我们做一些判断来避免这个错误,比如说转换时使用decimal.TryParse()等,当然如果你的数据无效那也是无法满足你功能需要的
      

  3.   

    把newRow["goodxiaoji"] = decimal.Parse(w[3]) * decimal.Parse(w[4]);改成:            decimal w3, w4;
                decimal.TryParse(w[3], out w3);
                decimal.TryParse(w[4], out w4);
                newRow["goodxiaoji"] = w3 * w4;
      

  4.   

    我觉得你还是应该从数据源头入手,去解决数据格式不正确的问题
    用decimal.TryParse(w[3], out w3);只能保证数据出错的时候程序不会报错,但是其实w3 * w4的值会是0,这并不是你想要的结果