当前位置:编程学习 > JAVA >>

关于 double 转 byte[] 的问题

代码在下面,主要问题了某些数据会出现转换错误,比如700~10W之间的数字转换就错误,但是小数或者大数可以转换成功,求教是什么问题?
 public static byte[] putDouble( double x) {  
        byte[] b = new byte[8];  
        long l = Double.doubleToLongBits(x);  
        for (int i = 0; i < 8; i++) {  
            b[i] = new Long(l).byteValue();  
            l = l >> 8;  
        }
        return b;
    }
    public static double getDouble(byte[] b) {  
        long m;  
        m = b[0];  
        m &= 0xff;  
        m |= ((long) b[1] << 8);  
        m &= 0xffff;  
        m |= ((long) b[2] << 16);  
        m &= 0xffffff;  
        m |= ((long) b[3] << 24);  
        m &= 0xffffffffl;  
        m |= ((long) b[4] << 32);  
        m &= 0xffffffffffl;  
        m |= ((long) b[5] << 40);  
        m &= 0xffffffffffffl;  
        m |= ((long) b[6] << 48);  
        m &= 0xffffffffffffffl;  
        m |= ((long) b[7] << 56);  
        return Double.longBitsToDouble(m);  
    } --------------------编程问答-------------------- 你应该借助Stream,然后从Stream再得到Byte。 --------------------编程问答--------------------
引用 1 楼 healer_kx 的回复:
你应该借助Stream,然后从Stream再得到Byte。

我没有stream啊 --------------------编程问答-------------------- 这有篇不错的文章。
http://www.360doc.com/content/10/1016/09/3103730_61409144.shtml --------------------编程问答--------------------
引用 3 楼 healer_kx 的回复:
这有篇不错的文章。
http://www.360doc.com/content/10/1016/09/3103730_61409144.shtml

你好,我就是用里面的函数,但是某一些数据转了以后是错误的
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,