Page 1 sur 1

comment verifier qu'un nombre est entier ?

Message non luPosté: 13 Mai 2011, 16:52
de Andrei210
Bonjour à tous, comme dis dans le titre j'aimerais savoir s'il est possible de verifier qu'une valeur soit entiere.
(en l'occurence c'est plus preisement une variable divisée par une autre )

Re: comment verifier qu'un nombre est entier ?

Message non luPosté: 13 Mai 2011, 17:06
de critor
Le test le plus précis (au sens d'une calculatrice), c'est de vérifier si la partie décimale est nulle.

Code: Tout sélectionner
fPart(A)=0



Tu peux aussi tester si le nombre est égal à sa partie entière. Mais dans ce cas, la calculatrice peut répondre que c'est vrai alors que les nombres sont différents mais proches.

Selon le contexte du programme, cela peut être une force ou une faiblesse.

Code: Tout sélectionner
int(A)=A

Re: comment verifier qu'un nombre est entier ?

Message non luPosté: 13 Mai 2011, 17:51
de Andrei210
merci ça me sera très utile ici. je choisirai surement la 1ere solution même si mes chifres ne devraient normalement pas avoir plus de 2 chiffres après la virgule.

Re: comment verifier qu'un nombre est entier ?

Message non luPosté: 22 Mai 2011, 17:46
de AAymeric
Ou sinon, on a If A=ent(A)

Re: comment verifier qu'un nombre est entier ?

Message non luPosté: 07 Oct 2018, 22:16
de chess
Il faut considérer que l'égalité parfaite n'existe pas sur les nombres réels en informatique.

Les tests ci-dessous ne marchent ni avec A=2.0000000001 ni avec A=1.9999999999
Code: Tout sélectionner
if fPart(A) = 0
if int(A) = A
if ent(A) = A

Il faut procéder par inégalité
mais le test ci-dessous ne marche avec A=1.9999999999
Code: Tout sélectionner
if fPart(A) < 1E-8

Ce test là marche toujours :
Code: Tout sélectionner
if abs ( A-round(A,0) ) < 1E-8

Je préfère ce test, équivalent et plus rapide :
Code: Tout sélectionner
if fPart(A+1E-8) < 2E-8

En python :
Code: Tout sélectionner
if (A+1E-8)%1 < 2E-8 :

Le seuil d'égalité 1E-8 peut être revu à la hausse pour les grands nombres.