Avatar ·

¿Cómo representar un float como un integer sin pérdida de información?

📁 python, ayuda, IA

Hay una tarea de convertir valores float a valores de tipo int (un valor float a un valor int) sin pérdida de información, es decir, para que luego se pueda realizar la conversión inversa. ¿Cómo se puede implementar esto?

Importante

Es necesario que en dicha conversión se conserve el orden y la suma,
es decir, para cualquier a, b: float debe cumplirse:

to_float(to_int(a) + to_int(b)) == a + bto_int(a) < to_int(b) cuando a < b, etc.

Encontré en Stack Overflow en inglés donde se representa bit a bit la estructura de valores float, pero no tengo idea de cómo aplicarlo a mi tarea.

Nota: NaN e inf no necesitan ser convertidos en mi tarea.


Intentos de solución

Inicialmente se me ocurrió la serialización con pickle.dumps y luego obtener un int de esos bytes, pero esto no es nada eficiente.