Vérifier qu'un nombre est un entier

Bonjour,

Dans un scénario, j’aimerai vérifier qu’un calcul donne un nombre entier. J’ai trouvé la fonction Is_Int en php mais elle ne fonctionne pas en direct dans le scenario …

Existe-t-il une autre fonction qui permettrait de faire cela ?
Merci pour vos retours

Bonjour

Vous êtes passé par un bloc code pour l’utiliser?

Antoine

Bonjour,

Vous pouvez tester si le nombre est égal à son arrondi :

Nombre == round(nombre)

2 « J'aime »

Non j’ai pas tenté le bloc code car pas assez(plus) expérimenté …

Je vais tester l’arrondi, ca me semble une bonne idée

Merci pour votre retour à tous les deux

Bonjour,
Je ne suis pas sûr que la proposition de @Bonjour soit la plus pertinente…
En effet, la fonction round() va arrondir à l’entier inférieur si la partie décimale est < à 0,5, et à l’entier supérieur si la partie décimale est supérieure à 0,5.
Aussi, si on a N = 12.05, la fonction round(N) retournera 12 et le test (partie entière) de N == round (N) ? sera donc vrai (pas de problème…).
Mais si N=12.56, la fonction round (N) retournera 13 et le test (partie entière) de N == round (N) ? sera faux.

La fonction floor(), qui élimine complétement la partie décimale (aucun arrondi), en ne retournant que la partie entière, serait peut-être plus indiquée du coup (suivant l’utilisation qui en est faite bien sûr…).

image

image

1 « J'aime »

12.05 sera toujours différent de 12 et de 13 donc on s’en fiche que ca arrondise en l’entier supérieur ou inférieur ici :wink:
Floor fonctionne aussi

Bonjour,
floor ne fonctionne pas pour les nombres négatifs
image

Personne n’est parfait ! :wink:

Ok, je suis d’accord, on obtient dans les deux cas une partie entière sans décimales.
Mais pour le test, il faut savoir quoi tester avec round() sachant que le résultat N n’est pas forcément connu d’avance.
N == round(N) ? donnera donc un résultat vrai pour 11.5 < N < 12.5, et faux dans tous les autres cas…
N == floor(N) ? donnera vrai pour 12 < N < 12.999999[…], et faux dans tous les autres cas.
(je ne tiens pas compte des valeurs négatives s’il y en a…).

Non ?

Bonjour,

Fonctionne avec floor(N) >= N

Ben non !

N == round(N) donnera true si et seulement si N est entier.
4,56 == round(4,56) == 5 → false
4,21 == round(4,21) == 4 → false

Fonctionne aussi avec des nombres négatifs !

Et c’est bien l’objet de la demande ?

1 « J'aime »

Donc pour répondre, il faudrait que le besoin dans le scénario et l’usage soient clairement définis.

Rien de bien nouveau en soit
:grin:
Antoine

1 « J'aime »

Ok, en effet ce n’est pas faux, c’est moi qui me fait des nœuds au cerveau, désolé ! :+1:

Il me semble que « vérifier qu’un nombre est entier » est très clair pour la plupart des gens qui sont allés à l’école :rofl:

1 « J'aime »