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