2009-05-19 19 views
5

Używam Qt i chcę wydrukować wartość danych (podwójne) w etykiecie; jednak kończące się zera są odcinane. Wiem, że w C mogę użyć printf ("% 0.1f", dane), aby zachować końcowe zera.Drukowanie końcowych zer w QString

Przyjrzałem się funkcji QStringa arg, ale to tylko pozwala na ustawienie ogólnej szerokości pola. setNum i o numerze każdy pozwala na ustawienie precyzji, ale to też nie jest w porządku.

Przykładowy kod:

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

Odpowiedz

6

Spójrz na statycznej funkcji QString::number() z argumentów formatu i precyzji.

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

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

+0

Przeoczyłem zmianę formatu z domyślnego "g" na "f", ponieważ "g" zawiera "f". Też brakowało niektórych słów w opisie "f". Prawidłowa odpowiedź: podwójne dane = 1,0; etykieta-> setText (QString(). Number (dane, "f", 1); – dwj

3

Dlaczego nie skorzystać QString :: sprintf()?

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