web-dev-qa-db-fra.com

Convertir un double en QString

J'écris un programme en QT. Je veux convertir un double en Qstring en C++.

42
Nagaraju

Utilisez la méthode numérique de QString (les documents sont ici ):

double valueAsDouble = 1.2;
QString valueAsString = QString::number(valueAsDouble);
82
Kristian

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".

16
Lars

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

8
Tarek.Mh

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.

3
jwd

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

2
yano