Как преобразовать длинное значение в строковый формат КБ - PullRequest
1 голос
/ 27 февраля 2012

Как представить длинное значение в килобайтах, например, снимок экрана?

enter image description here

Ответы [ 2 ]

7 голосов
/ 27 февраля 2012

Из моего блога :

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 КиБ = 1024 B.


Я также написал версию JavaScript , которая немного более надежна, если кому-то это нужно.

5 голосов
/ 27 февраля 2012

Это, вероятно, то, что вы ищете:

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

Если вы хотите использовать разделитель тысяч из текущих региональных настроек, используйте первый вариант. Если вы специально хотите использовать запятую, используйте второй вариант.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...