Die Python-Funktion float() konvertiert eine Eingabe in eine Fließkommazahl (Double-Precision IEEE-754, 64 Bit). Sie akzeptiert Zahlen, Strings mit numerischen Inhalten und besondere Bezeichner für Unendlichkeit (inf) und Not-a-Number (nan). Ohne Argument liefert float() 0.0.

Einleitung

float() ist sowohl der Konstruktor des Datentyps float als auch eine Konvertierungsfunktion. Sie nimmt eine Eingabe und liefert einen IEEE-754-Double — den Standard für Fließkommazahlen in nahezu allen modernen Programmiersprachen. Die Genauigkeit liegt bei rund 15–17 signifikanten Dezimalstellen.

Über numerische Werte hinaus akzeptiert float() auch Strings (mit optionalem Vorzeichen, Dezimalpunkt, wissenschaftlicher Notation und Underscores als Tausender-Trenner) sowie die speziellen Bezeichner "inf", "-inf" und "nan". Custom-Klassen können __float__() oder __index__() implementieren, um konvertierbar zu werden.

Syntax

Python Syntax
float()           # → 0.0
float(x)          # x: int, float, str oder Objekt mit __float__
Parameter
x

Eine Zahl (int, float), ein String mit numerischem Inhalt oder ein Objekt, das __float__() oder __index__() implementiert.

Rückgabewert

Eine float-Instanz. Bei nicht-konvertierbaren Strings wird ein ValueError ausgelöst, bei nicht unterstützten Typen ein TypeError.

Beispiele

Aus int und String

Python Beispiel
print(float(42))
print(float("3.14"))
print(float("  -2.5  "))   # Whitespace ist ok
print(float("1e3"))         # Wissenschaftliche Notation
Output
42.0
3.14
-2.5
1000.0

Sonderwerte: inf und nan

Python Beispiel
print(float("inf"))
print(float("-inf"))
print(float("nan"))
Output
inf
-inf
nan

Underscores als Lesehilfe

Python Beispiel
print(float("1_000_000.50"))
Output
1000000.5

Fehler bei ungültigem String

Python Beispiel
try:
    float("abc")
except ValueError as e:
    print(e)
Output
could not convert string to float: 'abc'

Praktische Beispiele

Float-Vergleich mit Toleranz

Python Beispiel
# Klassische Falle:
print(0.1 + 0.2 == 0.3)

# Korrekt mit math.isclose:
import math
print(math.isclose(0.1 + 0.2, 0.3))
Output
False
True

Maximalwert in Algorithmen mit inf

Python Beispiel
numbers = [4, 7, 1, 9, 2, 5]
smallest = float("inf")
for n in numbers:
    if n < smallest:
        smallest = n
print(smallest)
Output
1

NaN korrekt prüfen

Python Beispiel
import math
nan = float("nan")
print(nan == nan)        # NaN ist nie gleich sich selbst
print(math.isnan(nan))   # Korrekte Prüfung
Output
False
True

Praktische Hinweise

  • Präzision: float ist IEEE-754 Double — ca. 15–17 signifikante Dezimalstellen. Für exakte Dezimalrechnung (z. B. Money) ist decimal.Decimal die richtige Wahl.
  • NaN ist nicht gleich sich selbst: float('nan') == float('nan')False. Verwende math.isnan() zur Prüfung.
  • inf für Maximalwerte: praktisch in Algorithmen (min_value = float('inf')).
  • Locale ignoriert: float() parst nur Point (.) als Dezimaltrenner, nicht Komma.
/ Weiter

Zurück zu Builtin Functions

Zur Übersicht