浮動小数点数をバイナリファイル0.9999833107に保存しています。数値を読み取ると、floatを使用するか、doubleを使用して格納するかに応じて、切り捨てまたは拡張されます。私は次のコードでバイナリを読みました:
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です。ファイルに書き込まれた番号を取得する方法を誰かが知っていますか?