Dans le développement de PHP, la fonction CEIL () est utilisée pour contourner un numéro de point flottant vers le haut et renvoyer le plus petit entier pas moins que ce nombre. Cependant, dans certains scénarios spéciaux ou versions plus anciennes des environnements PHP, ceil () peut ne pas fonctionner aussi satisfaisant, ou vous avez besoin de fonctionnalités plus flexibles, telles que le soutien à l'arrondi vers le haut des décimales spécifiées. Afin d'améliorer la compatibilité et l'expérience utilisateur, nous pouvons encapsuler une fonction CEIL () personnalisée.
Cet article présentera comment créer une fonction déracineuse avec une compatibilité plus forte et des fonctionnalités plus riches pour une utilisation facile dans divers projets.
Le ceil () qui est livré avec PHP prend uniquement en charge les nombres d'arrondi les nombres à des entiers et renvoie directement le type entier. Par exemple:
echo ceil(3.2); // Sortir 4
echo ceil(-1.7); // Sortir -1
Cependant, si vous souhaitez arrondir jusqu'à 2 décimales, comme 3.1415 Round jusqu'à 3.15, Native Ceil () ne le prend pas en charge. De plus, certains anciens environnements ou extensions peuvent avoir des erreurs de calcul décimales.
Prend en charge l'arrondi à la hausse de plusieurs chiffres après avoir précisé un point décimal.
Compatible avec diverses versions PHP.
Évitez les erreurs de points flottants et assurez la précision du calcul.
Conception d'interface facile à utiliser et intuitive.
function custom_ceil(float $number, int $precision = 0): float {
if ($precision < 0) {
// Gérer la précision du nombre négatif,Rond à gauche(Par exemple-1exprimer10des multiples de)
$factor = pow(10, abs($precision));
return ceil($number / $factor) * $factor;
}
$factor = pow(10, $precision);
// Multiplier par multiples et rond,En débarrasser à nouveau,Arrondi vers le haut des décimales spécifiées
return ceil($number * $factor) / $factor;
}
// Exemple d'utilisation
echo custom_ceil(3.1415, 2); // Sortir 3.15
echo custom_ceil(-1.234, 1); // Sortir -1.2
echo custom_ceil(1234, -2); // Sortir 1300
Cette fonction calcule d'abord le multiplicateur en fonction de la précision , élargit le nombre et le tourne avec ceil () , puis le divise pour atteindre l'arrondi ascendant de la décimale spécifiée. Si la précision est négative, l'arrondi à gauche est mis en œuvre.
Vérification du type d'entrée : assurez-vous que le type de paramètre entrant est correct et évitez les erreurs de conversion implicites.
Type de retour unifié : Renvoie toujours les numéros de points flottants, pratique pour les calculs ultérieurs.
Entrée de numéro de chaîne de support : gère les numéros de chaîne passés par les utilisateurs.
Version complète:
function custom_ceil_advanced($number, int $precision = 0): float {
if (!is_numeric($number)) {
throw new InvalidArgumentException('L'entrée doit être une chaîne numérique ou numérique');
}
$number = (float)$number;
if ($precision < 0) {
$factor = pow(10, abs($precision));
return ceil($number / $factor) * $factor;
}
$factor = pow(10, $precision);
return ceil($number * $factor) / $factor;
}
// test
try {
echo custom_ceil_advanced("5.6789", 3); // 5.679
echo custom_ceil_advanced("100.1", -1); // 110
} catch (InvalidArgumentException $e) {
echo "erreur:" . $e->getMessage();
}
En encapsulant la fonction CEIL () personnalisée, nous améliorons non seulement la flexibilité de l'arrondi vers le haut, mais résolvons également les problèmes de limitation et de compatibilité des fonctions natives. Qu'il s'agisse de calcul financier avec des exigences de précision de données élevées ou dans les besoins diversifiés du projet, cet emballage est d'une grande valeur pratique.