1

我有两个 ushort 整数。整数:2206,41247

我想转换为浮动这个整数。为了这;

void Main()
{
    GetSingle(2206,41247).Dump();
}
public static float GetSingle(ushort highOrderValue, ushort lowOrderValue)
{
    return BitConverter.ToSingle(BitConverter.GetBytes(lowOrderValue).Concat(BitConverter.GetBytes(highOrderValue)).ToArray(), 0);
}

我在 Linqpad 中编写了一些代码。此函数结果为9,547158E-34

但在Modbus Poll程序中,这个整数转换为0 。

我使用 Modbus 协议从远程设备读取这些整数。正确值为0

我的问题; Modbus Poll 程序如何将此整数转换为浮点数?价值怎么可能为零?

任何想法 ?

4

1 回答 1

2

I arrived at the same number. Remember that 9,547158E-34 is really tiny - maybe it is just cast to an int afterwards, yeilding 0?

于 2014-10-14T08:41:14.810 回答