2017-07-07 1 views
1

Salut, bien que je fais quelque chose comme çaRéglage « SetPrecision » correctement

#include <iomanip> 
... 
     std::cout<<"Numbers "<<std::setprecision(2)<<numb1<< " "<<std::setprecision(2)<<numb2<<" "<<std::setprecision(2)<<numb3<<" "<< std::setprecision(4)<<numb4<<std::endl; 

Je ne reçois

Numbers 14 1.5e+02 0.0053 & 220 

Comment puis-je faire vraiment définir la précision par colonne pour obtenir un format cohérent et pas mélange de précision (5) et format scientifique?

+0

http://www.cppreference.com/w/cpp/io/manip/fixed –

Répondre

4

Utilisez le manipulateur std::fixed trop qui éteint toute retour à la notation scientifique: Si vous voulez changer la notation scientifique à nouveau sous

std::cout << std::fixed /*<< as before from here*/ 

, puis introduire le manipulateur std::scientific.

Référence; http://en.cppreference.com/w/cpp/io/manip/fixed

+0

c'est correct si je dois spécifier la précision juste avant le nombre - le problème est que cela ne fonctionne pas et imprimer un mélange de chiffres scientifiques/pre (5) ou prec (1) ... –

+0

Oui, ça va. Vous pouvez introduire des manipulateurs n'importe où dans la chaîne de cout. Bien que je sois honnête, je pense que je choisirais une sorte de solution de type "sprintf" ici. – Bathsheba