W3docs

ceil()

Die PHP-Funktion ceil() rundet eine Zahl auf die nächste ganze Zahl auf – Syntax, Rückgabetyp und praktische Anwendungsfälle erklärt.

Die PHP-Funktion ceil() rundet eine Zahl auf die nächste ganze Zahl – in Richtung positiver Unendlichkeit. Der Name leitet sich von „ceiling" (Decke) ab: Sie gibt immer den kleinsten ganzzahligen Wert zurück, der größer oder gleich dem Eingabewert ist. Diese Seite erklärt die Syntax, den überraschenden Rückgabetyp, das Verhalten bei negativen Zahlen und die praktischen Fälle, in denen Aufrunden genau das Richtige ist (Paginierung, Preisberechnung, Batch-Größen).

Syntax

ceil(int|float $num): float
  • $num — der zu rundende Wert. PHP akzeptiert einen int oder float; numerische Strings werden automatisch konvertiert.
  • Rückgabewert — die nächsthöhere ganze Zahl, zurückgegeben als float, nicht als int (mehr dazu weiter unten).

Grundlegendes Beispiel

php— editable, runs on the server

4.2 liegt zwischen 4 und 5, und ceil() bewegt sich immer nach oben, sodass das Ergebnis 5 ist. Sogar 4.0001 wird auf 5 aufgerundet. Ein Wert, der bereits eine ganze Zahl ist, wird unverändert zurückgegeben.

ceil() gibt einen float zurück

Das überrascht viele Einsteiger: ceil() gibt einen float zurück, auch wenn der Wert wie eine ganze Zahl aussieht.

<?php
$result = ceil(4.2);

echo $result;          // 5   (echo hides the .0)
var_dump($result);     // float(5)
echo gettype($result); // double
?>

echo zeigt 5 an, weil PHP das abschließende .0 beim Ausgeben weglässt, aber der zugrunde liegende Typ ist weiterhin float. Wenn Sie einen echten int benötigen – etwa um den Wert als Array-Schlüssel zu verwenden oder einen strikten Typ-Hinweis zu erfüllen – konvertieren Sie ihn explizit mit intval() oder (int):

<?php
$pages = (int) ceil(95 / 10);
var_dump($pages); // int(10)
?>

Wie ceil() negative Zahlen behandelt

„Aufrunden" bedeutet Bewegen in Richtung positiver Unendlichkeit, daher ist das Ergebnis bei negativen Zahlen näher an null, nicht weiter von null entfernt.

<?php
echo ceil(-4.2); // -4   (toward zero, not -5)
echo "\n";
echo ceil(-4.8); // -4
?>

-4.2 wird auf -4 gerundet, weil -4 größer als -4.2 ist. Das ist der entscheidende Unterschied zu einem naiven „immer 1 addieren" – ceil() folgt der Zahlengeraden, nicht dem Betrag.

ceil() vs. floor() vs. round()

Diese drei Funktionen reduzieren eine Zahl auf einen ganzzahligen Wert, wählen aber unterschiedliche Richtungen:

FunktionRichtungceil(4.2)floor(4.2)round(4.2)
ceil()Immer nach oben5
floor()Immer nach unten4
round()Nächste Zahl4

Verwenden Sie ceil(), wenn „jeder Rest bedeutet eins mehr" – floor() verwirft den Nachkommaanteil immer, und round() wählt die nächste ganze Zahl.

Praktische Anwendungsfälle

Paginierung – wie viele Seiten werden benötigt? Wenn Sie 95 Elemente haben und 10 pro Seite anzeigen, zählt die letzte unvollständige Seite trotzdem:

<?php
$total_items = 95;
$per_page    = 10;

$total_pages = ceil($total_items / $per_page);
echo $total_pages; // 10
?>

95 / 10 ist 9.5; floor() würde 9 liefern und die letzten 5 Elemente verlieren, daher ist ceil() hier die richtige Wahl.

Einen Preis auf den nächsten Cent aufrunden oder in ganzen Einheiten berechnen funktioniert genauso – jeder Rest erhöht den Wert auf die nächste Einheit.

Häufige Stolperfallen

  • Es ist keine ganze Zahl. Vergleichen Sie mit Zahlen, nicht mit Typen: ceil(4.2) === 5 ist false (float vs. int), während ceil(4.2) == 5 true ist. Konvertieren Sie mit (int), wenn Sie eine ganze Zahl benötigen.
  • Gleitkomma-Präzision. Da $num ein float ist, können kleine Darstellungsfehler gelegentlich überraschen (z. B. ein Wert, der eigentlich genau 5.0 sein sollte, aber als 5.00000001 gespeichert ist). Für Währungsbeträge bevorzugen Sie ganzzahlige Cent-Werte statt Gleitkomma-Beträgen in Euro.
  • Richtung bei negativen Zahlen. Denken Sie daran: ceil(-4.5) ist -4, nicht -5.

Fazit

ceil() rundet eine Zahl auf den nächsten ganzzahligen Wert auf und gibt ihn als float zurück. Verwenden Sie die Funktion immer dann, wenn ein Restbruchteil „als eins mehr zählen" muss – bei Paginierung, Batch-Größen oder Preisberechnung. Kombinieren Sie sie mit den verwandten Funktionen floor() und round(), und konvertieren Sie das Ergebnis mit intval(), wenn Sie tatsächlich einen int benötigen.

Übungen

Übung
Was ist die Funktion von ceil() in PHP?
Was ist die Funktion von ceil() in PHP?
Was this page helpful?