CEIL |
Conversion de l'entier supérieur ou égale |
|---|---|
Perl |
POSIX |
Syntaxe
| sub POSIX::ceil($expression); |
Paramètres
| Nom | Description |
|---|---|
| $expression | Ce paramètre permet d'indiquer l'expression contenant le nombre à traiter |
Description
Cette fonction retourne la valeur maximale d'un nombre, soit l'entier le plus proche supérieur ou égal au nombre.
Remarques
- Arrondit un nombre vers l'entier supérieur : La fonction POSIX::ceil($expression) retourne le plus petit entier supérieur ou égal à la valeur fournie. Par exemple, ceil(3.2) renvoie 4, tout comme ceil(3.0) renvoie aussi 3, car la valeur est déjà entière. C'est l'opposé logique de floor().
- Fonction utile pour gérer les plafonds en arithmétique : ceil est souvent utilisé dans les calculs d'arrondis vers le haut, comme lorsqu'on veut déterminer le nombre de blocs nécessaires pour stocker des éléments, ou encore pour gérer des pages, lots ou tranches dans des algorithmes d'ordonnancement.
- Le résultat est toujours un entier (type numérique entier) : Même si la fonction retourne un entier, le type en Perl reste numérique (non typé strictement int). On peut donc utiliser ce résultat dans n'importe quel contexte numérique, mais il reste bon de le documenter clairement dans le code.
- Comportement cohérent avec les règles mathématiques : ceil() respecte les conventions mathématiques classiques. Ainsi, ceil(-3.7) retournera -3 (plus grand que -3.7), ce qui peut surprendre si on pense que l'arrondi supérieur signifie « plus loin de zéro » au lieu de « supérieur numériquement ».
- Fait partie de l'interface POSIX et nécessite l'importation explicite : Pour utiliser cette fonction, on doit écrire use POSIX qw(ceil); au début du script. Cette importation explicite évite de polluer l'espace de noms Perl par défaut mais impose une rigueur syntaxique pour accéder aux fonctions POSIX.
- Plus fiable que les arrondis manuels avec des opérateurs : Bien que l'on puisse simuler ceil avec des formules comme int($x + 1) pour les cas positifs, cela échoue pour les négatifs. L'utilisation de POSIX::ceil garantit un comportement correct pour toutes les valeurs, y compris les négatives et les flottants exacts.
- Particulièrement utile en combinaison avec des divisions : Quand une division ne donne pas un résultat entier, ceil peut aider à obtenir le nombre minimal d'unités nécessaires. Par exemple :
- my $pages = ceil($total / $parPage);
- Alternative possible avec Math::BigFloat ou int() + tests : Bien que POSIX::ceil soit fiable, dans des cas de grands nombres ou de besoins spécifiques de précision, on peut préférer utiliser des modules comme Math::BigFloat. Cela permet une gestion précise de l'arrondi et des décimales, surtout en calcul scientifique ou financier.
Cela garantit de ne jamais sous-estimer le besoin.
Exemple
Voici un exemple montrant une utilisation plus classique de cette fonction :
- #!/usr/bin/perl
-
- use strict;
- use POSIX;
-
- print "CEIL(1)=" . POSIX::ceil(1) . "\n";
- print "CEIL(1.1)=" . POSIX::ceil(1.1) . "\n";
- print "CEIL(1.7)=" . POSIX::ceil(1.7) . "\n";
- print "CEIL(-1)=" . POSIX::ceil(-1) . "\n";
- print "CEIL(-1.1)=" . POSIX::ceil(-1.1) . "\n";
- print "CEIL(-1.7)=" . POSIX::ceil(-1.7) . "\n";
- print "CEIL(30.2)=" . POSIX::ceil(30.2) ."\n";
- print "CEIL(-35.4)=" . POSIX::ceil(-35.4) ."\n";
on obtiendra le résultat suivant :
CEIL(1)=1CEIL(1.1)=2
CEIL(1.7)=2
CEIL(-1)=-1
CEIL(-1.1)=-1
CEIL(-1.7)=-1
CEIL(30.2)=31
CEIL(-35.4)=-35
Voir également
Langage de programmation - Fonction C pour Linux - ceil
Dernière mise à jour : Dimanche, le 18 octobre 2015