Konvertieren von Bytes
-
Hi !
Eigentlich müßte hier 1,03 rauskommen, warum ergibt sich 0.00000 ?
long long upspeed = 1086120;
long long mysum;
mysum = upspeed / 1024 / 1024;
printf("Upspeed: %f\n",mysum);thx
-
long long upspeed = 1086120; double mysum; mysum = upspeed / float( 1 << 20 ); printf("Upspeed: %f\n",mysum);
-
Danke, funktioniert.
Hätte dran denken müssen, daß die Zahl natürlich kleiner wird.. nix mehr mit long long

Noch eine Idee wie ich davon nur zwei Stellen nach dem Komma nehme und den Rest verwerfe ?
-
Um bei printf zu bleiben:
long long upspeed = 1086120; double mysum; mysum = upspeed / float( 1 << 20 ); printf("Upspeed: %.2f\n",mysum);long long ist IMHO c99 und hat somit mit C++ _nichts_ zu tun (im gegensatz zu printf() das vll als nicht sauber/empfehlenswert/... gilt aber in der C-Untermenge von C++ enthalten ist)
long long ist dann auch ein _ganzzahliger_ Datentyp, sodass keine kommaergebnisse heraskommen _können_
-
So?
mysum = int( ( upspeed / float( 1 << 20 ) ) * 100.0 ) / 100.0;
-
Ja fast, das bringt mir:
Upspeed: 1.030000
Ich hätte gerne soetwas wie
Upspeed: 1.03 MB/sWobei ich das MB/s auch so dahinterschreiben kann, nur die 0000er müßten noch weg.
-
hast du meinen Vorschlag probiert?
-
darthdespotism:
Oppala, sorry hab die Änderung im Code übersehen und dacht es wäre nur ein Quote von dem vorherigen.
Es hat geklappt und funktioniert bestens. Vielen Dank !
-
kein Problem
