C# - 通过 byte[] 将双精度值传输到 Java 客户端

C# - double-Value transmitted to Java client via byte[]

我正在将双精度值从 C#-mqtt 客户端传输到 Java-mqtt 客户端。 Mqtt 要求它的有效载荷是一个字节 [] 所以我在 c# 中做以下事情:

byte[] vals = BitConverter.GetBytes(sub.value); // c#-sender

并通过 mqtt 将其传输到 java 客户端,后者又

double result = ByteBuffer.wrap(vals).getDouble(); // java-receiver

但是,虽然原始双精度值在 ~1 到 10 的范围内,但生成的 java 值在 10^-311 到 10^-312 的范围内。

我目前对c#不是很熟悉,找不到问题。

是偏移问题吗? LE/BE?我几乎被困住了,如果你能给我一个提示,我会很高兴的。

如评论中所述,尝试使用 ByteBuffer.order(ByteOrder) 方法翻转 ByteBuffer 上的字节顺序