C#中的Double对应数据库中的decimal

解决方案 »

  1.   

    parameters["@FAmt"].Value = float.Parse(row["FAmt"].ToString()); 换成
    parameters["@FAmt"].Value =  Convert.ToDouble(row["FAmt"].ToString()); 
      

  2.   

    换成
    parameters.Add(new SqlParameter("@FAmt", SqlDbType.Decimal)); 
      

  3.   

    多谢各位抽时间来讨论这个话题。因为我现在不能改WebServices。我只是希望知道是什么原因导致
    我乘完10000后发现135000000.0000传递过去的值就变成135009021了,多出的9021是怎么产生的,不精确也应该是
    出现在小数位置。现在却出现在整数位置。我想弄明白这个。
      

  4.   

    是不是WebServices内部做过数据转换或取舍、四舍五入之类的运算了,你都换成float好了
      

  5.   

    WebServices内部用的是Float,具体在题目中有代码。问题是即便是Float,我乘完10000后发现135000000.0000传递过去的值就变成135009021了,多出的9021是怎么产生的,不精确也应该是出现在小数位置。现在却出现在整数位置。