我使用Bitconverter从float转换为Byte数组。
byte[] ValueByteArray = BitConverter.GetBytes(Value);
现在我正在用另一个应用程序评估我的应用程序,目标当然是我的输出完全相同。问题是,它不是。
我100%确定测试结果是正确的,而且我的价值是“错误的”'或以其他格式。因为在连接到参考应用程序的客户端中,值为5.5,而我的是6.09414613e-039
我的申请:
参考申请
答案 0 :(得分:3)
您的参考申请是正确的; 0x00005C42是55,而不是5.5;这可能就像逗号vs period一样简单,就像你的一些解析代码中的十进制说明符一样。 6.09414613e-039似乎是字节顺序中的一个一个错误(参见底行)
示例:
float value = 5.5F;
var bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 00-00-B0-40
和
float value = 55;
var bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 00-00-5C-42
和
float value = 6.09414613e-039F;
var bytes = BitConverter.GetBytes(value);
Console.WriteLine(BitConverter.ToString(bytes)); // 00-5C-42-00