我有一个浮点数存储在二进制文件 0.9999833107 中。当我读取其中的数字时,它会被截断或扩展,具体取决于我是使用浮点数还是双精度数来存储它。我用以下代码读入二进制文件:
public double readFloat(RandomAccessFile fp){
byte[] data = new byte[4];
try {
data[0] = fp.readByte();
data[1] = fp.readByte();
data[2] = fp.readByte();
data[3] = fp.readByte();
} catch (IOException e) {
e.printStackTrace();
return 0;
}
ByteBuffer buffer = ByteBuffer.wrap(data);
return buffer.getDouble();
}
此方法返回 0.9999833106994629。当我将方法更改为输出浮点数时,返回的值为 0.9999833。有谁知道如何获取写入文件的数字?