本帖最后由 xugeer 于 2011-10-16 00:56:46 编辑

解决方案 »

  1.   

    double 就如float一样,涉及小数的时候,都是不精确的
      

  2.   

    奇怪,我在一个简单的程序里调试是正确的,也显示29330.1514。但是在我的程序段里就显示不对了,不知道什么原因,大侠看看,以下是断点的,列了几个变量方便查看
    见图
    其中 alist[p],alist[p-1],alist[p-2] 分别是-96064.9824,-66734.831,-109207.41
    实际上,这几个数字都是从一个txt文本读进来的,上面的步骤应该没问题,因为在pp,pp_1,pp_2中分别显示出来了
      

  3.   

    什么叫float/double因为都是浮点数,所以都是有精度限制的,当加减乘除运算后,就可能偏差,一般这个偏差需要代码来控制,例如四舍五入等。
      

  4.   

    我来告诉你把
    因为DOUBLE嘿嘿,他再编译的时候最后会被转换成2禁止数据,也就是01010101010之类的东西,因为他的长度有限制,所以在运算的时候会出现你这种情况,也就是不精确,建议使用de什么什么的那个类型
    应该就不会出现这个问题了