Darstellung eines float über QString

Alles rund um die Programmierung mit Qt
Antworten
Luftballon
Beiträge: 29
Registriert: 10. Mai 2009 20:03

Darstellung eines float über QString

Beitrag von Luftballon »

Hallo zusammen!

Ich liste die Dateien eines Verzeichnisses mit deren Größe in Byte und Megabyte auf. Dabei muss ich einen Methodenrückgabewert von int nach float umwandeln. Den daraus entstehenden float-Wert stelle ich über die Methode "sprintf" von QString dar. Allerdings benötigt diese Methode eine Instanz von QString. Gibt es noch eine einfachere Möglichkeit?

Und allgemein, kann man evtl. den nachfolgenden Code auch kürzer gestalten?

Code: Alles auswählen

QList<QFileInfo> files = dir.entryInfoList();
QList<QFileInfo>::Iterator it;
it = files.begin();
while(it != files.end()) {
	if((*it).isDir()) {
		str.append("[DIR]\t");
	} else {
		str.append("[FILE]\t");
	}
	str.append((*it).fileName());
	str.append("\t\t");
	
	str.append(QString::number((*it).size()));
	str.append(" Byte\t\t");
	
	float size = (float)(*it).size() / 1024 / 1024;
	QString s;
	str.append(s.sprintf("%5.3f", size));
	str.append(" Megabyte\t");
	
	str.append("\n");
	++it;
}
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Beitrag von -=Freaky=- »

QString::number() ist eine statische methode, die koenntest du evtl. benutzen.
sieh dir zur not mal die doku dazu an.

mfg,
julian
Luftballon
Beiträge: 29
Registriert: 10. Mai 2009 20:03

Beitrag von Luftballon »

Oh ja, da war ich wohl Blind! Ich mach wohl mal lieber Schluss für heute. ;-)

Der folgende Code funktioniert wunderbar:

Code: Alles auswählen

str.append(QString::number(size, 'f', 3));
Antworten