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.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager