Start · Sprachen · PHP · Referenz · doubleval

doubleval

Funktion

Alias von <code>floatval()</code> — wandelt einen Wert in eine Gleitkommazahl (float) um.

seit PHP 4.0.0 Kategorie: type

Signatur

doubleval(mixed $value): float

Beschreibung

doubleval() ist ein direkter Alias der Funktion floatval() und wandelt den übergebenen Wert in eine Gleitkommazahl vom Typ float um. Der Name leitet sich vom historischen C-Typ double ab, der in PHP intern für Gleitkommazahlen verwendet wird.

Die Funktion ist nützlich, wenn ein Wert aus einer externen Quelle (z. B. Formulareingabe, Datenbankabfrage) sicher als Dezimalzahl interpretiert werden soll. Dabei werden führende numerische Zeichenfolgen korrekt erkannt; nicht-numerische Zeichen, die nach dem Zahlenanteil folgen, werden ignoriert.

Da doubleval() lediglich ein Alias ist, verhält sich die Funktion in jedem Aspekt identisch zu floatval(). Es wird empfohlen, in neuem Code bevorzugt floatval() oder einen expliziten Cast (float) zu verwenden, da Aliase in zukünftigen PHP-Versionen potenziell als veraltet markiert werden könnten.

Parameter

Name Typ Default Beschreibung
$value Pflicht mixed Der umzuwandelnde Wert. Kann ein string, int, bool, null oder ein anderer Typ sein. Bei Objekten wird 1 zurückgegeben, sofern kein __toString() definiert ist.

Rückgabewert

Typ
float
Beschreibung
Gibt den float-Wert des übergebenen Parameters zurück. Leere Arrays und null ergeben 0.0, nicht-leere Arrays ergeben 1.0. Strings, die mit einem numerischen Wert beginnen, werden bis zum ersten nicht-numerischen Zeichen geparst.

Beispiele

Einfache Typumwandlung verschiedener Werte

<?php
var_dump(doubleval('3.14'));       // float(3.14)
var_dump(doubleval('1.5 kg'));     // float(1.5)
var_dump(doubleval('abc'));        // float(0)
var_dump(doubleval(true));         // float(1)
var_dump(doubleval(null));         // float(0)
var_dump(doubleval(42));           // float(42)
float(3.14) float(1.5) float(0) float(1) float(0) float(42)

Formulareingabe sicher als Gleitkommazahl verarbeiten

<?php
// Simulierter POST-Wert (z. B. Preis aus Formular)
$_POST['preis'] = '19,99'; // Komma statt Punkt

// Komma ersetzen, dann umwandeln
$preis = doubleval(str_replace(',', '.', $_POST['preis']));
echo 'Preis: ' . $preis . ' EUR'; // Preis: 19.99 EUR
Preis: 19.99 EUR

// Wichtig · Fallstricke

Alias-Hinweis: doubleval() ist vollständig identisch mit floatval(). Für neuen Code sollte bevorzugt floatval() oder der Cast (float) genutzt werden, um die Lesbarkeit zu verbessern und zukunftssicher zu bleiben.

Sicherheit: Die Funktion schützt nicht automatisch vor ungültigen Eingaben. Bei der Verarbeitung von Benutzereingaben (z. B. für Datenbankabfragen) sollte die Umwandlung mit einer anschließenden Validierung kombiniert werden, um sicherzustellen, dass der Wert im erwarteten Bereich liegt.

Lokalisierung: PHP erkennt nur den Punkt (.) als Dezimaltrennzeichen. Kommas müssen vor der Umwandlung manuell ersetzt werden.