Position actuelle: Accueil> Derniers articles> Est-il normal que ceil () soit flotté au lieu de Int?

Est-il normal que ceil () soit flotté au lieu de Int?

M66 2025-06-30

Dans PHP, la fonction ceil () est utilisée pour s'arrondir, renvoyant la valeur entière minimale supérieure ou égale au nombre donné. De nombreux développeurs remarqueront lors de l'utilisation que le type de résultat renvoyé par ceil () est, plutôt que l' intte attendu. Est-ce normal? Y a-t-il un problème de conversion de type? Cet article analysera en détail le type de retour de la fonction CEIL () et ses raisons.

1. Fonction de définition et de retour de ceil ()

Selon la documentation officielle PHP, la définition de la fonction ceil () est la suivante:

 float ceil(float $value)

Cela signifie que ceil () prend un paramètre de point flottant et renvoie un numéro de point flottant. Exemple de code:

 <?php
$num = 3.14;
$result = ceil($num);
var_dump($result); // Sortir float(4)
?>

Sortir:

 float(4)

Bien que le résultat soit un entier 4, le type de données est un flotteur.

2. Pourquoi ceil () retourne-t-il flotter au lieu de Int?

En effet, la conception de PHP détermine que la valeur de retour de ceil () est toujours un numéro de point flottant. Bien que la logique de ceil () soit une opération d'arrondi, son type de retour reste flottant, de sorte que la cohérence peut être maintenue dans les opérations mathématiques ultérieures ou les calculs mélangés avec des nombres à virgule flottante.

Par exemple:

 <?php
$num = 7.1;
echo ceil($num) + 1.5;  // Le résultat est 9.5
?>

Si ceil () renvoie INT, PHP peut avoir besoin de convertir INT en flottant pendant le processus de calcul, puis d'effectuer l'ajout de points flottants, en gardant le retour du flotteur pour éviter la conversion de type inutile.

3. Comment convertir le résultat de ceil () en entier?

Si vous avez explicitement besoin de types entiers, vous pouvez utiliser la fonction Cast ou intVal () :

 <?php
$num = 4.7;
$ceil_float = ceil($num);       // float(5)
$ceil_int = (int) $ceil_float;  // int(5)
var_dump($ceil_int);
?>

Cela donne un type entier pur.

4. Démonstration de cas réel

 <?php
// test ceil() Type de retour
$value = 5.3;
$result = ceil($value);
echo "ceil({$value}) = {$result}\n";    // s&#39;avérer 6
echo "Type est: " . gettype($result) . "\n"; // Type est float

// Couler int
$int_result = (int) $result;
echo "Couler int 后Type est: " . gettype($int_result) . "\n";  // int
?>

Sortir:

 ceil(5.3) = 6
Type est: double
Couler int 后Type est: integer

5. Résumé

  • Le type de valeur de retour de la fonction CEIL () est Float, qui est un comportement normal dans la conception PHP.

  • Même si la valeur de retour est une valeur entière, le type de données est toujours flottant.

  • Si un type entier est requis, vous pouvez couler (int) ou intVal () .

  • Garder le type de flotteur aide à éviter les conversions de types multiples entre les points flottants et les entiers, améliorant les performances informatiques.