这是一个老问题了,就是将一个double型的数据转换成 byte型来存贮,需要的时候又将byte还原成double型的数据,要求转化回来的数据和原来的double型数据一致.

解决方案 »

  1.   

    转换成1个byte?强制转换,但是容易发生数据失真。
    多个byte?也是强制转换成byte型指针,然后把内存中的byte一个一个存储起来,或者直接存储double即可。double d = 1.234;
    BYTE* p = (BYTE*)&d;
    for (int i=0; i<sizeof(double); i++)
      SaveByte(p[i]);
      

  2.   

    BYTE b[4];
    double db;
    memcpy(db, b, 4);
    memcpy(b, db, 4);
      

  3.   

    double型数据要占8字节,可以用一个长度为8的BYTE型数组来储存,例如:
    double d1, d2;
    BYTE b[8];
    d1 = 1.234;
    d2 = 0;
    (double&)b = d1;
    d2 = (double&)b;
    这段代码可能不太容易理解,自己调试看一下就明白了。
      

  4.   

    这个好像没必要转换吧,直接存成double类型,需要byte时再转换不就可以?
      

  5.   

    double score=89.123456;
    char byte[8];
    memcpy(byte,&score,8); double so;
    memcpy(&so,byte,8);
    cout<<so<<endl;
      

  6.   

    double score=89.123456; 
    char byte[8]; 
    memcpy(byte,&score,8); double so; 
    memcpy(&so,byte,8); 
    printf("%8.6lf", so); 
      

  7.   

    union double2byte
    {
        double dbVal;
        BYTE   byteVal[8];
    }D2B;
    D2B d2b;d2b.dbVal = 1.0000001;
    d2b.byteVal[i];
      

  8.   

    double类型转换成byte型存储不是什么问题,主要的问题是显示问题吧?double类型的打印一直是提问比较多的问题
      

  9.   

    赫赫,最简单办法:!
    声明公用体(根据操作系统平台16? 32? 64位?)
    union uData{
       byte bList[8];
       double dData;
    };
      

  10.   

    寸在一个byte[]里。每4个数组元素保存一个double。
      

  11.   

    大家好,很高兴大家在这里给的一些建议和一起学习。
    先谢大家
    可能我的题目说得不够清楚
    现在再重复一下:
    如何将一个double型的数据拆分为八个字节的数组,然后如何将八个字节型的数组合并成一个double型的数据?
      

  12.   

    提醒:
    平台上面没有byte类型,关键是要分了之后还要还原成double型,大家再帮忙想想