如何从long值转换为KB字符串格式

问题描述:

如何表示像快照图片那样的KB长值?如何从long值转换为KB字符串格式

enter image description here

这可能是你在找什么:

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

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