W3docs

ceil()

Découvrez la fonction ceil() en PHP, qui arrondit un nombre vers le haut à l'entier supérieur le plus proche.

La fonction PHP ceil() arrondit un nombre vers le haut jusqu'au nombre entier suivant — en direction de l'infini positif. Le nom vient du mot anglais « ceiling » (plafond) : elle retourne toujours la plus petite valeur entière supérieure ou égale à la valeur d'entrée. Cette page explique la syntaxe, le type de retour surprenant, le comportement avec les nombres négatifs et les cas pratiques où l'arrondi supérieur est exactement ce qu'il vous faut (pagination, tarification, taille de lots).

Syntaxe

ceil(int|float $num): float
  • $num — la valeur à arrondir. PHP accepte un int ou un float ; les chaînes numériques sont automatiquement converties.
  • Valeur de retour — le prochain entier supérieur, retourné sous forme de float et non d'int (plus de détails ci-dessous).

Exemple de base

php— editable, runs on the server

4.2 est compris entre 4 et 5, et ceil() monte toujours vers le haut, donc le résultat est 5. Même 4.0001 est arrondi à 5. Une valeur déjà entière est retournée telle quelle.

ceil() retourne un float

Cela surprend souvent les débutants : ceil() retourne un float, même si la valeur ressemble à un entier.

<?php
$result = ceil(4.2);

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

echo affiche 5 parce que PHP supprime le .0 lors de l'affichage, mais le type sous-jacent reste float. Si vous avez besoin d'un vrai int — par exemple pour utiliser la valeur comme clé de tableau ou pour satisfaire un typage strict — convertissez-la explicitement avec intval() ou (int) :

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

Comment ceil() gère les nombres négatifs

Arrondir « vers le haut » signifie se déplacer vers l'infini positif, donc pour les nombres négatifs le résultat est plus proche de zéro, et non plus éloigné.

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

-4.2 est arrondi à -4 parce que -4 est plus grand que -4.2. C'est la différence essentielle avec un simple « toujours ajouter 1 » — ceil() suit la droite numérique, pas la valeur absolue.

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

Ces trois fonctions réduisent toutes un nombre à une valeur entière, mais choisissent des directions différentes :

FonctionDirectionceil(4.2)floor(4.2)round(4.2)
ceil()Toujours vers le haut5
floor()Toujours vers le bas4
round()Plus proche4

Utilisez ceil() quand « tout reste signifie une unité de plus » — floor() supprime toujours la fraction, et round() choisit l'entier le plus proche.

Cas d'utilisation pratiques

Pagination — combien de pages me faut-il ? Si vous avez 95 éléments et en affichez 10 par page, la dernière page partielle compte quand même :

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

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

95 / 10 vaut 9.5 ; floor() donnerait 9 et ferait disparaître les 5 derniers éléments, donc ceil() est le bon choix ici.

Arrondir un prix au centime supérieur ou facturer en unités entières fonctionne de la même façon — tout reste vous fait passer à l'unité suivante.

Pièges courants

  • Ce n'est pas un entier. Comparez avec des nombres, pas avec des types : ceil(4.2) === 5 est false (float vs int), tandis que ceil(4.2) == 5 est true. Convertissez avec (int) quand vous avez besoin d'un entier.
  • Précision des nombres à virgule flottante. Comme $num est un float, de petites erreurs de représentation peuvent parfois vous surprendre (par ex. une valeur qui « devrait » être exactement 5.0 étant stockée comme 5.00000001). Pour les montants monétaires, préférez des centimes entiers aux dollars en virgule flottante.
  • Direction avec les négatifs. Rappelez-vous que ceil(-4.5) vaut -4, pas -5.

Conclusion

ceil() arrondit un nombre vers le haut à la valeur entière la plus proche et le retourne sous forme de float. Utilisez-la dès qu'une fraction restante doit « compter comme une unité de plus » — pagination, dimensionnement de lots ou tarification. Associez-la à ses fonctions sœurs floor() et round(), et convertissez le résultat avec intval() quand vous avez réellement besoin d'un int.

Pratique

Pratique
Quel est le rôle de la fonction ceil() en PHP ?
Quel est le rôle de la fonction ceil() en PHP ?
Was this page helpful?