如何从long值转换为KB字符串格式
答
这可能是你在找什么:
long memory = 210957130;
Console.WriteLine("{0:N0} K", memory/1024);
Console.WriteLine(string.Format(new CultureInfo("en-US"), "{0:N0} K", memory/1024));
如果您想使用的千个分隔符从当前的区域设置,使用第一个选项。如果您特别想使用逗号,请使用第二个选项。
答
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
是的..这正是我寻找..非常感谢:) – 2012-02-27 01:06:02