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

Posted

技术标签:

【中文标题】如何从长值转换为 KB 字符串格式【英文标题】:How do I convert from long value to KB string format 【发布时间】:2012-02-27 00:37:56 【问题描述】:

如何像快照图片一样以 KB 表示长值?

【问题讨论】:

【参考方案1】:

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,如果有人需要,它会更强大。

【讨论】:

我需要按照图片中的格式进行操作。当它变为 >= Math.Pow(1024, 2) .. @MurHafSoz:是的,这就是我写第二段的原因。只需除以 1024。除非您质疑如何用逗号格式化数字......但无论如何,Yuriy 解释了这一点。【参考方案2】:

这可能就是你要找的:

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

如果您想使用当前区域设置中的千位分隔符,请使用第一个选项。如果您特别想使用逗号,请使用第二个选项。

【讨论】:

以上是关于如何从长值转换为 KB 字符串格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将长转换/转换为字符串?

如何将一个字节数组转换为两个长值?

如何从长字符串中获取电子邮件地址

在 MySQL 中,如何从长文本字符串中提取 URL?

athena presto - 从长到宽的多列

Java - 将人类可读大小转换为字节