是否有可能写出一个C#double并用Java读取它?

Nic*_*ill 3 c# java double

是否有可能在C#中写出双字节的8字节表示,然后在Java中的那8个字节中读取与编码的相同的双数字?

Mar*_*ell 7

是的,java和.NET都使用IEEE-754表示,尽管Java可能会省略一些标志.这里的主要问题是字节序,如果需要,这是微不足道的.例如,在.NET中,您可以将其处理为:

double value = ...
byte[] bytes = BitConverter.GetBytes(value);
Run Code Online (Sandbox Code Playgroud)

和:

byte[] bytes = ...
double value = BitConverter.ToDouble(bytes);
Run Code Online (Sandbox Code Playgroud)

端序确定哪个字节进入第一/最后,但它们之间的切换是作为扭转阵列一样简单; 例如,如果你想要"big-endian",那么你可以转换为:

if(BitConverter.IsLittleEndian) {
    Array.Reverse(bytes);
}
Run Code Online (Sandbox Code Playgroud)

(记得在阅读和写作时都这样做)

我恐怕我不知道java的相同,但它绝对是完全可用的 - 我怀疑ByteBuffer.putDouble/ ByteBuffer.getDouble将是一个良好的开端.