2012-02-27 104 views

回答

4

這可能是你在找什麼:

long memory = 210957130; 
Console.WriteLine("{0:N0} K", memory/1024); 
Console.WriteLine(string.Format(new CultureInfo("en-US"), "{0:N0} K", memory/1024)); 

如果您想使用的千個分隔符從當前的區域設置,使用第一個選項。如果您特別想使用逗號,請使用第二個選項。

+0

是的..這正是我尋找..非常感謝:) – 2012-02-27 01:06:02

7

From my blog

static string ReadableFileSize(double size, int unit=0) 
{ 
    string[] units = { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" }; 

    while(size >= 1024) { 
     size /= 1024; 
     ++unit; 
    } 

    return String.Format("{0:0.#} {1}", size, units[unit]); 
} 

雖然這不會做你問具體是什麼。如果你有一個long代表的bytes數量,那麼所有你需要做的就是通過1024 1 KiB = 1024分B.


我也寫了JavaScript version這是一個有點更強大的,如果有人需要一個。

+0

我需要像圖片中的格式那樣做..當它變成> = Math.Pow(1024,2)時,您的方法將值更改爲MB .. – 2012-02-27 01:04:30

+0

@MurHafSoz:是的,這就是爲什麼我寫了第二段。簡單地除以1024.除非你質疑你如何用逗號格式化數字......但是Yuriy無論如何都解釋了這一點。 – mpen 2012-02-27 05:57:26