Convertir un certain nombre de stringstream à la chaîne avec un ensemble de précision
Je voudrais obtenir un certain nombre de stringstream et de définir à 5 chiffres significatifs. Comment dois-je faire? Jusqu'à présent, c'est ce que j'ai réussi à venir avec:
double a = 34.34566535
std::stringstream precisionValue;
precisionValue.precision(6) << a << std::endl;
Cependant, ce n'est pas la compilation. Merci.
OriginalL'auteur programmingNoob | 2012-09-10
Vous devez vous connecter pour publier un commentaire.
Cela ne compile pas car
ios_base::precision()
retournestreamsize
(c'est une intégrale).Vous pouvez utiliser les manipulateurs de flux:
Vous aurez besoin d'inclure
<iomanip>
.OriginalL'auteur jrok
std::stringstream::precision()
renvoie unestreamsize
, pas une référence pour le flux lui-même, qui est nécessaire si vous voulez séquence<<
opérateurs. Cela devrait fonctionner:OriginalL'auteur Zyx 2000
La
précision
membre de la fonction renvoie la précision actuelle, pas une référence à la stringstream, de sorte que vous ne peut pas enchaîner les appels que vous avez fait dans le fragment de code.Ou utiliser le
setprecision
IO manipulateur de la chaîne d'appels:OriginalL'auteur Praetorian
Vous pouvez utiliser
std::setprecision
à partir de l'en-tête<iomanip>
OriginalL'auteur juanchopanza