У меня два целых числа. Целые числа: 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 преобразует эти целые числа в float? Как значение может быть равно нулю?
Есть идеи?
Я пришел к тому же номеру. Помните, что 9,547158E-34 действительно крошечный - может быть, его просто бросают в int после, yeilding 0?
Console.WriteLine(string.Join(", ", BitConverter.GetBytes((float)0)));