2009-05-19 16 views
5

Sto usando Qt e voglio stampare un valore di dati (doppio) in un'etichetta; tuttavia, gli zeri finali vengono interrotti. So in C Posso usare printf ("% 0.1f", data) per conservare gli zeri finali.Stampa di zero finali in una QString

Ho esaminato la funzione arg di QString ma ciò consente di impostare solo la larghezza del campo complessiva. setNum e numero Ciascuno consente di impostare la precisione ma non è nemmeno giusto.

codice Esempio:

double data = 1.0; 
label->setText(QString().number(data); 

risposta

6

Guardate la funzione statica QString::number() con il formato e la precisione argomenti.

QString QString::number(double n, char format = 'g', int precision = 6) 

Riferimento: http://doc.qtsoftware.com/4.5/qstring.html#number-2

+0

Ho trascurato di cambiare il formato da predefinito "g" a "f" poiché "g" include "f". Persino alcune parole nella descrizione di 'f' pure. Risposta corretta: double data = 1.0; label-> setText (QString(). Number (data, 'f', 1); – dwj

3

perché non utilizzare QString :: sprintf()?

QString().sprintf("%08d + rest of the string", 7);