float() în Python

Tipul numerelor cu zecimale; float() transformă un text sau un întreg în număr zecimal.

Sintaxă
float(x=0)

Ce face float()

float reprezintă numerele cu virgulă mobilă (în cod se scrie cu punct: 3.14). Precizia este de aproximativ 15-17 cifre semnificative, iar unele valori zecimale nu pot fi reprezentate exact: 0.1 + 0.2 dă 0.30000000000000004.

float() acceptă și textele "inf", "-inf" și "nan" (infinit și „nu este număr”), precum și notația științifică "1e3".

Pentru bani sau calcule care trebuie să fie exacte, folosește modulul decimal sau lucrează în bani (întregi).

Parametri

Parametru Descriere
x Un număr sau un text cu un număr. Spațiile de la capete sunt ignorate.

Ce returnează

Un număr float. Pentru un text invalid apare ValueError.

Exemple

Exemplul 1: Conversii

print(float("3.5") * 2)
print(float(7))
print(float("1e3"))
print(float("inf") > 10 ** 100)

Rezultat

7.0
7.0
1000.0
True

Exemplul 2: Precizia limitată

print(0.1 + 0.2)
print(0.1 + 0.2 == 0.3)
print(round(0.1 + 0.2, 2) == 0.3)

import math
print(math.isclose(0.1 + 0.2, 0.3))

Rezultat

0.30000000000000004
False
True
True

Exemplul 3: Virgula românească

float() acceptă doar punctul zecimal. Un preț scris „12,50” trebuie întâi transformat.

pret_text = "12,50"
pret = float(pret_text.replace(",", "."))
print(pret * 2)

Rezultat

25.0

Greșeli frecvente

  • Compari numere zecimale cu == după calcule. Folosește math.isclose() sau rotunjește înainte.
  • Dai un text cu virgulă (float("12,5")) și primești ValueError. Înlocuiește virgula cu punct.

Comenzi înrudite

  • int(): Tipul numerelor întregi; int() transformă un text sau un număr zecimal în număr întreg.
  • round(): Rotunjește un număr la cel mai apropiat întreg sau la un număr de zecimale.
  • math.isclose(): Verifică dacă două numere zecimale sunt „suficient de apropiate” pentru a fi considerate egale.
  • float.is_integer() și int.is_integer(): Verifică dacă un număr zecimal nu are parte fracționară (de exemplu 4.0).