Avatar ·

Comment représenter un float en tant qu'int sans perte d'information ?

📁 Sujets avancés sur Python, aide, IA

Il y a une tâche de conversion de valeurs float en valeurs de type int (une valeur float en une valeur int) sans perte d'information, c'est-à-dire pour pouvoir ensuite effectuer la conversion inverse. Comment peut-on réaliser cela ?

Important

Il faut que lors de cette conversion, l'ordre et la somme soient préservés,
c'est-à-dire que pour tout a, b: float, on doit avoir :

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

J'ai trouvé sur Stack Overflow en anglais une représentation bit à bit de la structure des valeurs float, mais je ne vois pas comment l'appliquer à mon problème.

Remarque : NaN et inf n'ont pas besoin d'être convertis dans mon problème.


Tentatives de solution

Initialement, j'ai pensé à la sérialisation avec pickle.dumps, puis à obtenir un int à partir de ces octets, mais ce n'est pas du tout rationnel.