| Uutiset | Koodikirjasto | Wiki | Keskustelut | FAQ | Info |
ToHumanReadableTorak 22.02.07 01:34 Konvertoi tiedoston koon helpostiluettavaan muotoon.
public static string ToHumanReadable(UInt64 size) { string tmp_str = ""; float tmp_size = size; UInt64 k = 0; string[] size_abr = { "bit", "Ki", "Mi", "Gi", "Ti" }; while (tmp_size > 700) { tmp_size = tmp_size / 1024; k++; } if (tmp_size < 7) tmp_str = tmp_size.ToString("0.##"); else if (tmp_size < 70) tmp_str = tmp_size.ToString("##.#"); else tmp_str = tmp_size.ToString("#,###"); if (k < (UInt64)size_abr.Length) return tmp_str + " " + size_abr[k]; else return size.ToString(); } cow 21:59 22.2.07 Tästähän puuttuu dokumentaatio. Mitä funktiolla syötetään, missä yksiköissä ja mitä se palauttaa? Torak 02:36 23.2.07 Eli funktiolle syötetään tiedoston koko bitteinä ja se palauttaa merkkijono ilmentymän. Merkkijono muodostetaan mahdollisimman luettavaan muotooon ja yksikkö lisätään mukaan. Esim 783 3434 -> 78,3Ki tai 512Mi. editoitu: 09:15 23.2.07 harja 09:15 23.2.07 1 Byte = 8 bittiä. Ainakaan aluksi et jaa tuota lukua kahdeksalla, eli alkuperäinen luku on siis byteinä. Miksi vertaat 700:aan, 70:een ja 7:ään? Lisäksi ilman kommentointia tästä ei kyllä ole kauheasti hyötyä. Ztane 10:13 25.2.07 Sitäpaitti bittejä harvemmin kyllä lasketaan Mi-etuliitteillä yms, tavuja (B) kylläkin. feenix 22:57 21.5.07 (Wanha, tiedän, mutta on tylsää) Ja pitää vielä päästä nipottamaan siitä että asetetaan turha alkuarvo tmp_str:lle, plussaillaan stringejä eikä käytetä StringBuilderia tai String.Formatia, k on turhaan 64-bittinen vaikkei sen arvo tule olemaan kovin iso. Ja miksi 10000 teraa palautetaan sitten ihan vain numerona, miksei käytetä sitä suurinta mahdollista yksikköä edes? |
![]() Haku
|