Jak przetworzyć ciąg znaków na wartość typu float lub int?

W Pythonie, jak mogę sparsować ciąg liczbowy taki jak "545.2222" do odpowiadającej mu wartości float, 545.2222? Lub sparsować ciąg "31" na liczbę całkowitą, 31?

Chcę po prostu wiedzieć jak parsować float str na float, i (oddzielnie) int str na int.

Rozwiązanie
>>> a = "545.2222"
>>> float(a)
545.22220000000004
>>> int(float(a))
545
Komentarze (7)

Użytkownicy codelogic i harley są poprawni, ale pamiętaj, że jeśli wiesz, że ciąg jest liczbą całkowitą (na przykład 545), możesz wywołać int("545") bez wcześniejszego rzutowania na float.

Jeśli twoje łańcuchy są na liście, możesz również użyć funkcji map.

>>> x = ["545.0", "545.6", "999.2"]
>>> map(float, x)
[545.0, 545.60000000000002, 999.20000000000005]
>>>

Jest to dobre tylko wtedy, gdy wszystkie są tego samego typu.

Komentarze (1)

float("545.2222") i int(float("545.2222")).

Komentarze (1)