Partage
  • Partager sur Facebook
  • Partager sur Twitter

affichage double

Sujet résolu
    5 mars 2008 à 14:03:35

    Bonjour,

    Ma question semble dérisoire...voir stupide, mais elle me bloque énormément pour un prog.

    Avec le code suivant :
    1. #include <iostream>
    2. using namespace std;
    3. int main()
    4. {
    5.     double p;
    6.     p = 1/239;
    7.     cout << p << endl;
    8.     p = 1;
    9.     p /= 239;
    10.     cout << p << endl;
    11.         return 0;
    12. }


    Il affiche 0 puis 0.00418410.

    Pourquoi affiche t il 0 pour p=1/239.

    Merci beaucoup :)
    • Partager sur Facebook
    • Partager sur Twitter
      5 mars 2008 à 14:09:57

      Tu divises deux entier il faut faire :
      1. #include <iostream>
      2. using namespace std;
      3. int main()
      4. {
      5.     double p;
      6.     p = 1/239.0;
      7.     cout << p << endl;
      8.     p = 1;
      9.     p /= 239;
      10.     cout << p << endl;
      11.         return 0;
      12. }

      ou
      1. #include <iostream>
      2. using namespace std;
      3. int main()
      4. {
      5.     double p;
      6.     p = 1.0/239;
      7.     cout << p << endl;
      8.     p = 1;
      9.     p /= 239;
      10.     cout << p << endl;
      11.         return 0;
      12. }

      ;)
      • Partager sur Facebook
      • Partager sur Twitter
        5 mars 2008 à 14:15:18

        OK , merci beaucoup xs_yann.
        Je n'avais pas pensais à ça.

        Mais dans ce cas, pourquoi p=1 puis p/=239 fonction sans écrire 1.0 et 239.0 ?
        • Partager sur Facebook
        • Partager sur Twitter
          5 mars 2008 à 14:25:19

          Quand tu écrit "p=1", p est un double et 1 est entier. Donc 1 est converti en double pour être affecté à p et vaut 1.000 (quelque chose comme ça).
          Ensuite "p/=239" revient donc à écrire 1.00/239 et le résultat est un double (toujours pour pouvoir être affecté à p).
          J'espère être clair. ;)
          • Partager sur Facebook
          • Partager sur Twitter

          affichage double

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown