IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

[Conversion de type] Int -> Double


Sujet :

C++

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Dordogne (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2012
    Messages : 15
    Points : 4
    Points
    4
    Par défaut [Conversion de type] Int -> Double
    Bonjour,

    Je fais des petits tests pour convertir une variable d'un type en un autre type. Le dernier exemple en date est le suivant : j'ai une variable de type int, je demande sa valeur à l'utilisateur, et je stocke cette valeur dans une variable de type double. Par exemple si je tape 4, je voudrais que ça m'affiche 4.0.

    Voici le code et un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        int nb_charrettes = 0;
        double nb_double = 0.0;
        cin >> nb_charrettes;
        nb_double = static_cast<double>(nb_charrettes);
     
        cout << nb_double << endl;
     
        return 0;
    }
    Exemple
    Entrée : 4
    Sortie : 4

    Comment expliquer ce mystère ? Je pense que la réponse est simple mais je n'ai pas trouvé. Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    C'est simplement parce que l'affichage s'arrête avant premier caractère non représentatif: 4 reste 4 dans tous les types de l'arc en ciel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int main()
    {
        int i=4;
        double d1=static_cast<double>(i);
        double d2=4.0;
        std::cout<<d1<<std::endl
                 <<d2<<std::endl;
     
        return 0;
    }
    aura exactement le même résultat

    Tu ne verras apparaitre le point que s'il y a effectivement "quelque chose" à afficher du coté décimal et que la précision affichée est suffisante pour représenter décimale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    int main()
    {
        double d2=4.00001;
        std::cout<<d2<<std::endl
                 <<std::setprecision(4)<<d2<<std::endl;
        return 0;
    }
    affichera 4.00001 à la première ligne (parce que l'affichage se fait, par défaut à une précision de 6 chiffres après la virgule) et 4 à la seconde ligne (car il n'y a pas de caractère représentatif parmi les quatre décimales à afficher)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Voir std::fixed.

Discussions similaires

  1. conversion champ type int vers type date
    Par Osef95 dans le forum Développement
    Réponses: 4
    Dernier message: 19/12/2012, 10h29
  2. Conversion du type int en String et inversement
    Par sheridan08 dans le forum Débuter
    Réponses: 1
    Dernier message: 20/10/2012, 13h56
  3. [Conversion]int to double
    Par frouge dans le forum Général Java
    Réponses: 6
    Dernier message: 03/02/2012, 09h34
  4. Conversion du type int à float
    Par @yoyo dans le forum Débuter
    Réponses: 9
    Dernier message: 16/01/2008, 12h22
  5. Conversion de type double en texte
    Par CoachMac dans le forum C
    Réponses: 17
    Dernier message: 14/10/2006, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo