Avatar ·

Como representar float como integer sem perda de informação?

📁 python, ajuda, IA

Há uma tarefa de converter valores float em valores do tipo int (um valor float em um valor int) sem perda de informação, ou seja, para que depois seja possível realizar a conversão inversa. Como isso pode ser implementado?

Importante

É necessário que, durante essa conversão, a ordem e a soma sejam preservadas,
ou seja, para quaisquer a, b: float deve valer:

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

Encontrei no SO em inglês uma representação bit a bit da estrutura de valores float, mas não consigo imaginar como aplicá-la à minha tarefa.

Nota: NaN e inf na minha tarefa não precisam ser convertidos.


Tentativas de solução

Inicialmente, pensei em serialização com pickle.dumps e depois obter int desses bytes, mas isso não é nada eficiente.