关于double型的赋值问题,我有一个矩阵,里面每一维可以存一个double型的数据,
m_mDataSample.m_pTMatrix[m_nrolltimeW*i+j][0]=dEnergy1;
调试时发现dEnergy1=0.998341341***,但是最后 m_mDataSample.m_pTMatrix[m_nrolltimeW*i+j][0]中存的值等于1.000000000,不知道为什么它自己就四舍五入了,有没有办法让矩阵精确保留这个值?急!help!

解决方案 »

  1.   

    能不能说详细一点。我也在做矩阵,用double * *dValue存二维矩阵,没有你说的情况发生,你为什么会出现这种情况原因需要你提供更详细的说明才能分析了。
      

  2.   

    如果你自己不指定double类型的保存精度,系统当然就用默认的了,所以自己就四舍五入了
      

  3.   

    如何指定double类型的保存精度呢,谢谢,急,在线等,解决就给分
      

  4.   

    这样试试:
    m_mDataSample.m_pTMatrix[m_nrolltimeW*i+j][0]=(double)dEnergy1;
      

  5.   

    DOUBLE类型的变量的精确值只有15位,如果你想要更多的精确值,只能用UNSINGED等其它修饰符来提高精确值,我以前遇到过这样的事情,我就是这样解决的。不过这种方法要谨慎用,因为他会降低程序的速度。
      

  6.   

    m_mDataSample.m_pTMatrix[m_nrolltimeW*i+j][0]=(double)dEnergy1;
    我试过了不好使,另外,我说的是如何不让他四舍五入,