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 :

[C++]vector et double


Sujet :

C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut [C++]vector et double
    Bonjour,
    J'ai un vecteur de double et apparement, vector me tronque mes double...
    Y a t'il un moyen d'eviter cette troncature?

    Merci!!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 107
    Points : 122
    Points
    122
    Par défaut
    tu dois te tromper dans ton code (vector est un conteneur simple, il touche pas à ses données).
    Tu peux toujours le faire voir.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    Voila mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int main(int argc, char **argv)
     {
     	vector<double> _vParameters ;
    	_vParameters.push_back(1.123456);
    	_vParameters.push_back(123456.123);
     
    	for (unsigned int i = 0 ; i < _vParameters.size() ; i++)
    	{
    		cout << "--> " << _vParameters[i] << endl ; 
    	}
     
     	return 1;	
     }
    Et il m'affiche :
    --> 1.12346
    --> 123456
    Cet arrondi ne me va pas du tout.
    Comment lui dire de ne toucher a rien?


    Merci!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    c'est ton std::cout qui fait l'arrondi

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    #include <iostream>
    #include <vector>
     
    int main() 
    {
        using namespace std;
     
        typedef std::vector < double > DoubleVec; 
     
        DoubleVec v;
     
        v.push_back( 1.123456 );
        v.push_back( 123456.123 );
     
        DoubleVec::iterator end = v.end();
        for( DoubleVec::iterator ite = v.begin(); 
             ite != end;
             ++ite )
        {
            std::cout << std::fixed << *ite  << std::endl;
        }
     
        return 0;
    }

  5. #5
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Par défaut cout sort une précision de 6 caractères.
    Utilise std::setw(X) du header <iomanip>.
    Plus d'infos ici

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 237
    Points : 83
    Points
    83
    Par défaut
    haha!
    Oui ca vient du cout!!

    Merci :-)

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    Citation Envoyé par spoutspout Voir le message
    Par défaut cout sort une précision de 6 caractères.
    Utilise std::setw(X) du header <iomanip>.
    Plus d'infos ici
    dans la FAQ tout simplement

    http://cpp.developpez.com/faq/cpp/?p...stream_iomanip

  8. #8
    Membre éprouvé
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Points : 1 067
    Points
    1 067
    Par défaut
    Le lien était pour expliquer la taille par défaut de 6 caractères par un exemple de la MSDN, n'importe où que se situe la virgule dans le nombre.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sorting ArrayList<Vector<String, Double>>
    Par hassanJava dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 09/08/2010, 17h44
  2. Vector et cast en double
    Par javamax dans le forum Langage
    Réponses: 3
    Dernier message: 26/03/2007, 21h21
  3. convertir un double truc[] en vector<double> chose
    Par [Hugo] dans le forum SL & STL
    Réponses: 8
    Dernier message: 06/09/2006, 10h20
  4. Reinitialliser un vector de double a 0
    Par harsh dans le forum SL & STL
    Réponses: 18
    Dernier message: 16/06/2006, 10h04
  5. Pb de conversion: double[] vers un vector type???
    Par hycsos dans le forum SL & STL
    Réponses: 4
    Dernier message: 15/01/2006, 07h59

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