partie entière en C++
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

partie entière en C++



  1. #1
    mimi-mimi1

    partie entière en C++


    ------

    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.

    -----

  2. #2
    pm42

    Re : partie entière en C++

    Ça devrait. Tu peux aussi lire

    http://www.cplusplus.com/reference/cmath/floor/

    Note que n/100 est une expression entière de toute manière.

  3. #3
    mimi-mimi1

    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?

  4. #4
    pm42

    Re : partie entière en C++

    n % 100
    Si tu veux tester si le reste est 0 : n % 100 == 0

  5. A voir en vidéo sur Futura
  6. #5
    Chanur

    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.

  7. #6
    lou_ibmix_xi

    Re : partie entière en C++

    J'ai un doute, ça marche aussi pour les négatifs ?

  8. #7
    pm42

    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.

  9. #8
    polo974

    Re : partie entière en C++

    Citation Envoyé par mimi-mimi1 Voir le message
    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...).

    Citation Envoyé par pm42 Voir le message
    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...
    Jusqu'ici tout va bien...

Discussions similaires

  1. Exo partie entière
    Par sknbernoussi dans le forum Mathématiques du supérieur
    Réponses: 10
    Dernier message: 23/10/2011, 17h51
  2. Partie entière
    Par piitchoune01 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 07/10/2011, 20h41
  3. partie entiere
    Par invite79444c03 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 29/09/2009, 17h19
  4. Partie entière
    Par invite2220c077 dans le forum Mathématiques du collège et du lycée
    Réponses: 8
    Dernier message: 22/05/2009, 16h54
  5. Partie entiere TS
    Par invite33d8be82 dans le forum Mathématiques du collège et du lycée
    Réponses: 10
    Dernier message: 09/11/2008, 13h35