Signatur
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
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)
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
// 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.