Convert.ToSingle改为Convert.ToDouble

解决方案 »

  1.   

    Convert.ToSingle改为Convert.ToDouble超出single的范围了。
      

  2.   

    很正常啊,float的最大精确倍数是7位
    而结果已经超过了7位
      

  3.   

    Single 数据类型Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38。Single 的类型声明字符为感叹号 (!)。
    -------------------------------------------------------改为Convert.ToDouble测试正确:protected void Button1_Click(object sender, EventArgs e)
        {
            string a = "686599.23";
            string b = "320023.86";        double c = Convert.ToDouble(a) + Convert.ToDouble(b);
            Response.Write(c);
        }
      

  4.   

    最后的那个数据应是float类型的立即数据:1006623.13f改代码如下:Convert.ToSingle("686599.23")+Convert.ToSingle("320023.86") == 1006623.13f