Bonjour,
si n est entier, n/100 ne l'est pas forcément. Je cherche la syntaxe en C++ pour écrire la partie entière de n/100. (J'ai essayé floor(n/100) comme en C, mais ca ne marche pas).
Je vous remercie par avance.
Note que n/100 est une expression entière de toute manière.
23/09/2015, 11h53
#3
invitea7d8195d
Date d'inscription
janvier 1970
Messages
35
Re : partie entière en C++
Merci! Et pour la partie décimale de n/100? Je ne sais pas si je dis vrai, mais pour moi le reste de la division de n sur 100 est la partie décimale de n/100, et je cherche à écrire la condition:
if (reste de la division de n sur 100 est 0) {...}. Comment exprimer cette condition en C++ s'il vous plaît?
23/09/2015, 12h06
#4
pm42
Date d'inscription
juillet 2015
Messages
14 291
Re : partie entière en C++
n % 100
Si tu veux tester si le reste est 0 : n % 100 == 0
Aujourd'hui
A voir en vidéo sur Futura
23/09/2015, 12h43
#5
Chanur
Date d'inscription
septembre 2011
Messages
1 200
Re : partie entière en C++
Quand tu écris floor (n/100), si n est entier, il calcule d'abord n/100 qui donne un entier, puis il convertit le résultat en double, puis il lance la fonction floor.
A priori, ce que tu veux faire, c'est une division en double : floor (n/100.) (la différence c'est le '.')
Mais je plussoie ce qui a été répondu plus haut : n/100 donne la partie entière de la division et n%100 le reste :
n est égal à 100*(n/100) + n%100
Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.
23/09/2015, 18h59
#6
inviteb9f49292
Date d'inscription
janvier 1970
Messages
2 474
Re : partie entière en C++
J'ai un doute, ça marche aussi pour les négatifs ?
23/09/2015, 19h20
#7
pm42
Date d'inscription
juillet 2015
Messages
14 291
Re : partie entière en C++
floor oui, la division non si on s'en tient à la définition mathématique de la partie entière.
26/09/2015, 08h22
#8
polo974
Date d'inscription
février 2007
Messages
8 790
Re : partie entière en C++
Envoyé par mimi-mimi1
Merci! Et pour la partie décimale de n/100? Je ne sais pas si je dis vrai, mais pour moi le reste de la division de n sur 100 est la partie décimale de n/100, et je cherche à écrire la condition:
if (reste de la division de n sur 100 est 0) {...}. Comment exprimer cette condition en C++ s'il vous plaît?
bonne question (par rapport au début du fil qui était flou...).
Envoyé par pm42
n % 100
Si tu veux tester si le reste est 0 : n % 100 == 0
est la bonne réponse. Il n'y a pas besoin de passer par les flottants
mais je passe ici pour 2 trucs:
pour un test:
on peut écrire if( a==0) tout comme on peut écrire if(0==a), mais la seconde façon montre clairement que c'est un test, et surtout si on oublie le == et ne met qu'un simple =, le compilo gueulera plus fort...
pour les flottants (float et double):
ce n'est qu'une approximation des réels et il est strictement impossible de représenter exactement 0.1 (par ex) dans ces formats... donc il y a trèèèès souvent de petites erreurs qui font qu'il ne faut JAMAIS faire un test à l'égalité sans prévoir une marge d'erreur...
bref, se méfier des flottants comme de la peste quand on débute... et même après...