J'ai un problème concernant la conversion de Float sur C ++ String à l'aide d'Ostringstream. Voici ma ligne:
void doSomething(float t) { ostringstream stream; stream << t; cout << stream.str(); }
4 Réponses :
Si vous souhaitez qu'un nombre particulier de chiffres significatifs affichés, essayez d'utiliser SETPRecision (N) où N est le nombre de chiffres significatifs que vous souhaitez.
#include <iomanip> void doSomething(float t) { ostringstream stream; stream << std::setprecision(4) << t; cout << stream.str(); }
Vous devez définir la précision pour Ostringstream à l'aide de précision code >
par exemple p>
J'ai eu une solution pour 0,0999, mais pour le nombre de 7,9E-08, je reçois toujours la même chose. Alors, que peut être la solution pour cela.
Vous devez définir une précision au flux lui-même. I.e. Stream.Precision (3);
Je fais la même chose. Voici mon code: Stream d'Ostringstream; Stream.Precision (1); Stream << t; COUT << ENDL << "Valeur:" << stream.str ();
D'accord, utilisez une précision fixe. E.g, flux.Precision (8); Stream << Fixe; Stream << t; COUT << ENDL << "Valeur:" << stream.str ();
Quelle est la précision par défaut pour ostringstream?
Utilisez SETPRecision :
stream << setprecision(5) <<t ;
J'ai eu une solution pour 0,0999, mais pour le nombre de 7,9E-08, je reçois toujours la même chose. Alors, que peut être la solution pour cela.
Si vous souhaitez un point fixe au lieu de la notation scientifique, utilisez Vous pouvez également définir la précision comme mentionné. P> P> std :: fixe code>
:
Pourquoi ne passez-vous pas le flotteur directement à
COUT CODE>?
@ En Silico, j'aimerais en fait utiliser cette valeur à un moment donné de mon code.
@In Silico, qu'est-ce que vous dites réellement ne fonctionne pas.
C'est pourquoi c'est un commentaire, pas une réponse. :-) Je ne savais pas que le
COUT code> est à des fins de débogage.