Signatur
Beschreibung
is_float() prüft, ob der übergebene Wert intern als PHP-Typ float (auch bekannt als double) gespeichert ist. Die Funktion gibt true zurück, wenn es sich um eine echte Gleitkommazahl handelt – also nicht um einen Integer, einen numerischen String oder null.
Typische Anwendungsfälle sind Typ-Validierungen in Funktionen, die ausschließlich Gleitkommazahlen verarbeiten sollen, sowie die Unterscheidung zwischen int und float bei mathematischen Berechnungen. Achtung: Ein numerischer String wie '3.14' wird nicht als float erkannt – dafür wäre is_numeric() geeignet.
Die Funktion ist identisch mit is_double(), welche lediglich ein Alias ist. In modernem PHP-Code sollte bevorzugt is_float() verwendet werden. Alternativ kann der strenge Typenvergleich mit gettype($value) === 'double' oder die Typprüfung via $value instanceof float (nicht möglich) verwendet werden – hier ist is_float() die sauberste Lösung.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $value Pflicht | mixed | Der zu prüfende Wert beliebigen Typs. |
Rückgabewert
true zurück, wenn $value vom Typ float ist, andernfalls false.Beispiele
Grundlegende Typprüfung mit verschiedenen Werten
<?php
$a = 3.14;
$b = 42;
$c = '3.14';
$d = 1.0;
$e = INF;
var_dump(is_float($a)); // true
var_dump(is_float($b)); // false (int)
var_dump(is_float($c)); // false (string)
var_dump(is_float($d)); // true
var_dump(is_float($e)); // true (INF ist float)
Validierung einer Benutzereingabe für Preiswerte
<?php
function setzePreis(mixed $preis): string {
if (!is_float($preis)) {
return "Fehler: Preis muss eine Gleitkommazahl sein, erhalten: " . gettype($preis);
}
if ($preis < 0.0) {
return "Fehler: Preis darf nicht negativ sein.";
}
return sprintf("Preis gesetzt: %.2f EUR", $preis);
}
echo setzePreis(9.99) . PHP_EOL;
echo setzePreis(10) . PHP_EOL;
echo setzePreis('5.50') . PHP_EOL;
// Wichtig · Fallstricke
Alias: is_double() ist ein vollständiger Alias für is_float() und verhält sich identisch. In neuem Code sollte is_float() bevorzugt werden.
Sonderfall NaN: NAN (Not a Number) ist in PHP vom Typ float – is_float(NAN) gibt daher true zurück, obwohl NAN keine sinnvolle Zahl darstellt. Für Berechnungen sollte zusätzlich is_nan() geprüft werden.
Numerische Strings: is_float('3.14') gibt false zurück. Soll geprüft werden, ob ein Wert als Gleitkommazahl interpretierbar ist, muss stattdessen is_numeric() verwendet werden.