Есть задача преобразования float значений в значения типа int (одно float значение в одно int значение) без потери информации, т.е., чтобы потом можно было выполнить обратное преобразование. Как это можно реализовать?
Важно
Надо, чтобы при таком преобразовании сохранялся порядок и сумма,
т.е. для любых a, b: float должно выполняться:
to_float(to_int(a) + to_int(b)) == a + bto_int(a) < to_int(b) при a < b и т.д.Нашёл на англоязычном SO , где побитово представляется структура float значений, но не представляю, как её можно применить для своей задачи.
Примечание: NaN и inf в моей задаче преобразовывать не надо.
Попытки решения
Изначально на ум пришла сериализация с помощью pickle.dumps, а затем получение int из этих байт, но это совсем не рациональное решение и оно совершенно не удовлетворяет требованиям.
Были попытки реализовать это через байтовые представления чисел (), в таком варианте не сохраняется сумма.
question@mail.ru
·