1

私は2つのushort整数を持っています。整数: 2206,41247

この整数を float に変換したい。このため;

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 プログラムはどのようにこの整数を float に変換しますか? どのようにして値をゼロにすることができますか?

何か案が ?

4

1 に答える 1

2

同じ番号に着きました。9,547158E-34 は非常に小さいことを思い出してください。おそらく、後で int にキャストされ、0 が返されるのではないでしょうか?

于 2014-10-14T08:41:14.810 に答える