Si je comprends bien la fonction SetPrecision spécifie la précision minimale, mais quand je lance le code suivant je reçois seulement 3 chiffres après la virgule:C++ précision - comportement des SetPrecision
int main()
{
double a = 123.4567890;
double b = 123.4000000;
std::cout << std::setprecision(5) << a << std::endl; // Udesireble
std::cout.setf(std::ios::fixed);
std::cout << std::setprecision(5) << a << std::endl; // Desireble
std::cout << std::setprecision(5) << b << std::endl; // Udesireble
std::cout.unsetf(std::ios::fixed);
std::cout << std::setprecision(5) << b << std::endl; // Desireble
return 0;
}
qui imprime:
123.46 // Udesireble
123.45679 // Desireble
123.40000 // Udesireble
123.4 // Desireble
Y a-t-il un moyen d'éviter de vérifier moi-même le nombre de chiffres après le point décimal afin de savoir si l'on veut régler ce nombre?
Malheureusement, c'est la seule solution qui a fonctionné jusqu'à présent, mais je n'étais sûr que C++ pourrait avoir quelque chose de plus élégant que je ne suis pas conscient de. – SadStudent
@SadStudent Votre exigence est un peu rare. L'habitude est d'avoir un nombre fixe de positions décimales (et zéro-remplissage :-() .C'est très bien que vous avez demandé –