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.