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!!
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!!
tu dois te tromper dans ton code (vector est un conteneur simple, il touche pas à ses données).
Tu peux toujours le faire voir.
Voila mon code
Et il m'affiche :
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; }
Cet arrondi ne me va pas du tout.--> 1.12346
--> 123456
Comment lui dire de ne toucher a rien?
Merci!
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; }
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
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.
Partager