gpt4 book ai didi

java - 从java中的二进制文件读取Double时得到错误的值

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:22 25 4
gpt4 key购买 nike

RandomAccessFile in = new RandomAccessFile("BOT.grd", "r");
in.seek(28);
double xll=in.readDouble();

上面是我用来读取 29 到 36 字节位置的 double 据的代码。当前的值是 500,但我得到的是 2.088E-317

最佳答案

这个文件似乎存储在不同的 Endianness 中比java使用的要好。在转换为 double 之前,字节可能需要反转,您可以尝试以下代码来读取值:

long   l = in.readLong();
double d = Double.longBitsToDouble(Long.reverseBytes(l));

下面是一个说明问题的示例:

double d = 500.0;

long l1 = Double.doubleToLongBits(d);
long l2 = Long.reverseBytes(l1);

System.out.println(Double.longBitsToDouble(l1));
System.out.println(Double.longBitsToDouble(l2));

输出:

500.0
2.088356E-317

关于java - 从java中的二进制文件读取Double时得到错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8037822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com