Start · Sprachen · PHP · Referenz · is_float

is_float

Funktion

Prüft, ob eine Variable vom Typ <code>float</code> (Gleitkommazahl) ist und gibt entsprechend <code>true</code> oder <code>false</code> zurück.

seit PHP 4.0.0 Kategorie: type

Signatur

is_float(mixed $value): bool

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

Typ
bool
Beschreibung
Gibt 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)
bool(true) bool(false) bool(false) bool(true) bool(true)

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;
Preis gesetzt: 9.99 EUR Fehler: Preis muss eine Gleitkommazahl sein, erhalten: integer Fehler: Preis muss eine Gleitkommazahl sein, erhalten: string

// 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 floatis_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.