Я реализовал две лямбда-функции, используя struct
int_to_float = lambda n: struct.unpack('@f', struct.pack('@I', n))[0]
float_to_int = lambda f: struct.unpack('@I', struct.pack('@f', f))[0]
Затем я тестирую:
f1 = 1.90826472023605
i = float_to_int(f1)
f2 = int_to_float(i)
print(f1, f2, i)
print(f1-f2)
Результаты печати:
1.90826472023605 1.9082647562026978 1072972293
-3.596664766014612e-08
Означает ли это struct есть проблема с упаковкой / распаковкой?