如何将 modbus 32 位字转换为 C# 浮点数?

How to convert a modbus 32-bit word to a C# float?

如何在 C# 中将 modbus 32 位字转换为浮点数?

这是我的代码:

float Modbus_Floating(byte[] temp)
    {
        byte[] temp2 = new byte[4];
        temp2[0] = temp[3];
        temp2[1] = temp[2];
        temp2[2] = temp[1];
        temp2[3] = temp[0];

        float f = System.BitConverter.ToSingle(temp, 0);

        return f;
    }

它不起作用, 我得到一个很大的负数 我应该得到 36.7

    [0] 102 byte
    [1] 102 byte
    [2] 66  byte
    [3] 22  byte

但我不明白.. 为什么?

您需要检查的几件事:

当您确定所有这些并且 BitConverter 失败时,您可以随时手动解析,,只要您有规范。