Qt: format d'un nombre entier dans un QString
Je voudrais formater un nombre entier dans un QString
. Je voudrais toujours avoir les 6 bons numéros.
Par exemple "1" doit être "000001" et "12" doit être "000012".
J'essaie de faire comme avec printf(%06d, number)
. J'ai donc écrit ce
QString test;
test = QString("%06d").arg(QString::number(i));
qDebug()<<test;
i est mis en œuvre dans une boucle for
.
Mais il ne fonctionne pas depuis que j'ai:
"0d"
"1d"
"2d"
"3d"...
Personne ne sait comment faire s'il vous plaît?
Si vous lisez la documentation de QString::arg(), vous permettra de comprendre les résultats que vous obtenez
OriginalL'auteur Jeanstackamort | 2014-02-25
Vous devez vous connecter pour publier un commentaire.
Chaîne de l'argument de l'assistance ne fonctionne pas comme printf. Tout est documenté. Ce que vous voulez, c'est:
OriginalL'auteur Kuba Ober
Vous pouvez essayer les suivantes:
Cette inutilement utilise le
arg
surcharge pour les doubles. Ce sera un échec spectaculaire si la plate-formeint
est un 64 bits type, ou si la déclaration se fait jamais changé deqint64
. En omettant de manière spectaculaire, je veux dire qu'il y aura des chiffres du résultat qui sont tout simplement mauvais. Il échoue tout de même, si la plate-formedouble
type est égal àfloat
et arrive à être en 32 bits (comme autorisé par la norme). Donc c'est à peu près portables et pas du tout recommandé.OriginalL'auteur vahancho
Ont un coup d'oeil dans la documentation de QTextStream. Il y a un certain nombre de paramètres pour la mise en forme ainsi que d'un certain nombre de pratique de manipulateurs. Ceci est analogue au texte manipulateurs de STL
iostream
OriginalL'auteur RobbieE