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 )
comment verifier qu'un nombre est entier ?
5 posts
• Page 1 of 1
-
Andrei210
Niveau 4: MC (Membre Confirmé)- Posts: 19
- Joined: 15 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1ere S
Re: comment verifier qu'un nombre est entier ?
Le test le plus précis (au sens d'une calculatrice), c'est de vérifier si la partie décimale est nulle.
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: Select all
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: Select all
int(A)=A
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 42227
- Images: 16681
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: comment verifier qu'un nombre est entier ?
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.
-
Andrei210
Niveau 4: MC (Membre Confirmé)- Posts: 19
- Joined: 15 Sep 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1ere S
Re: comment verifier qu'un nombre est entier ?
Ou sinon, on a If A=ent(A)
-
AAymeric
Niveau 7: EP (Espèce Protégée: geek)- Posts: 14
- Joined: 30 Jul 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 2nd
Re: comment verifier qu'un nombre est entier ?
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
Il faut procéder par inégalité
mais le test ci-dessous ne marche avec A=1.9999999999
Ce test là marche toujours :
Je préfère ce test, équivalent et plus rapide :
En python :
Le seuil d'égalité 1E-8 peut être revu à la hausse pour les grands nombres.
Les tests ci-dessous ne marchent ni avec A=2.0000000001 ni avec A=1.9999999999
- Code: Select all
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: Select all
if fPart(A) < 1E-8
Ce test là marche toujours :
- Code: Select all
if abs ( A-round(A,0) ) < 1E-8
Je préfère ce test, équivalent et plus rapide :
- Code: Select all
if fPart(A+1E-8) < 2E-8
En python :
- Code: Select all
if (A+1E-8)%1 < 2E-8 :
Le seuil d'égalité 1E-8 peut être revu à la hausse pour les grands nombres.
-
chessPremium
Niveau 6: SM (Super Membre)- Posts: 45
- Joined: 12 Sep 2015, 15:09
- Location: France - Drome
- Gender:
- Calculator(s):→ MyCalcs profile
5 posts
• Page 1 of 1
Who is online
Users browsing this forum: ClaudeBot [spider] and 0 guests