is_infinite
is_infinite($num)
Renvoie true quand un nombre décimal est l’infini positif ou négatif (INF, -INF). L’infini apparaît quand le résultat d’un calcul dépasse la plage des nombres décimaux.
Paramètres
- $num – un nombre décimal.
Exemples
var_dump(is_infinite(INF)); // bool(true) var_dump(is_infinite(-INF)); // bool(true) var_dump(is_infinite(1.5)); // bool(false) // NAN n'est pas l'infini var_dump(is_infinite(NAN)); // bool(false) // d'où vient l'infini var_dump(is_infinite(exp(1000))); // bool(true) var_dump(log(0)); // float(-INF) var_dump(is_infinite(pow(10, 400))); // bool(true) // l'infini est plus grand que n'importe quel nombre var_dump(INF > PHP_FLOAT_MAX); // bool(true) // l'infini moins l'infini donne NAN var_dump(is_nan(INF - INF)); // bool(true) // il ne peut pas être converti en JSON var_dump(json_encode(INF)); // bool(false)
Points d’attention
- Contrairement à NAN, l’infini se compare : INF == INF vaut true. is_infinite reste quand même plus lisible.
- Les calculs avec l’infini renvoient l’infini ou NAN, l’erreur se propage donc plus loin. Vérifiez le résultat là où il peut apparaître.
- is_finite() exclut les deux à la fois (l’infini et NAN).
- json_encode() ne convertit pas l’infini et renvoie false.
Fonctions associées :
is_finite()
is_nan()
log()