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ștemath.isclose()sau rotunjește înainte. - Dai un text cu virgulă (
float("12,5")) și primeștiValueError. Î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).