J'écris un programme en QT. Je veux convertir un double
en Qstring
en C++.
Utilisez la méthode numérique de QString (les documents sont ici ):
double valueAsDouble = 1.2;
QString valueAsString = QString::number(valueAsDouble);
Au lieu de QString::number()
j'utiliserais QLocale::toString()
, donc je peux obtenir des séparateurs de groupe sensibles aux paramètres régionaux comme l'allemand "1.234.567,89".
Vous pouvez utiliser arg (), comme suit:
double dbl = 0.25874601;
QString str = QString("%1").arg(dbl);
Cela résout le problème de: "précision fixe" pour les autres fonctions comme: setNum () et number (), qui généreront des nombres aléatoires pour compléter la précision définie
Consultez la documentation
Citation:
QString fournit de nombreuses fonctions pour convertir des nombres en chaînes et des chaînes en nombres. Voir les fonctions arg () , les fonctions setNum () , les fonctions statiques number () et les fonctions toInt () , toDouble () , et fonctions similaires.
Sur la base de la réponse de @ Kristian, j'avais le désir d'afficher un nombre fixe de décimales. Cela peut être accompli avec d'autres arguments dans la fonction QString::number(...)
. Par exemple, je voulais 3 décimales:
double value = 34.0495834;
QString strValue = QString::number(value, 'f', 3);
// strValue == "34.050"
Le 'f'
spécifie la notation au format décimal (plus d'informations ici , vous pouvez également spécifier la notation scientifique) et le 3
spécifie la précision (nombre de décimales). Probablement déjà lié dans d'autres réponses, mais plus d'informations sur le QString::number
la fonction peut être trouvée ici dans la documentation QString