Преобразование в число с плавающей точкой

У меня есть два коротких целых. Целые числа: 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 конвертирует эти целые числа в число с плавающей точкой? Как значение может быть нулевым?

Любая идея?

1 ответ

Решение

Я прибыл на тот же номер. Помните, что 9,547158E-34 действительно крошечный - может быть, потом он просто приводится к int, получая 0?

Другие вопросы по тегам