float.hex() și float.fromhex() în Python

Scrie un număr zecimal în format hexazecimal exact și îl citește înapoi.

Sintaxă
x.hex()
float.fromhex(text)

Ce face float.hex() și float.fromhex()

float.hex() returnează reprezentarea exactă a unui float, în forma 0x1.mantisap±exponent. Spre deosebire de scrierea zecimală, nu se pierde nicio precizie, deci este potrivită pentru salvarea exactă a valorilor. float.fromhex() face conversia inversă.

Ce returnează

hex: text. fromhex: float.

Exemple

Exemplul 1: Reprezentări exacte

print((1.0).hex(), (0.5).hex(), (0.1).hex())
print(float.fromhex("0x1.8p1"))
x = 0.1 + 0.2
print(float.fromhex(x.hex()) == x)

Rezultat

0x1.0000000000000p+0 0x1.0000000000000p-1 0x1.999999999999ap-4
3.0
True

Greșeli frecvente

  • Confunzi float.hex() cu hex(): funcția încorporată hex() acceptă doar întregi.

Comenzi înrudite

  • bin(), oct() și hex(): Transformă un număr întreg în text scris în baza 2, 8 sau 16.
  • as_integer_ratio(): Returnează numărul ca fracție exactă: perechea (numărător, numitor).
  • float(): Tipul numerelor cu zecimale; float() transformă un text sau un întreg în număr zecimal.