C# Как мне сократить свой двойной, когда я конвертировал байты в мегабайты?

Здравствуйте, я сделал обновление, которое загружает файлы обновлений, но теперь я всегда использовал байты в качестве индикатора
Я нашел способ конвертировать его в мегабайты,

это работает хорошо, но одна маленькая проблема, это возвращает ОГРОМНЫЕ числа, например,
файл размером 20 МБ будет отображаться как: 20.26496724167345 МБ

Как я могу сделать это число немного короче, как 20,26 МБ

Это код, который преобразует его в МБ:

    static double B2MB(long bytes)
    {
        return (bytes / 1024f) / 1024f;
    }

3 ответа

Решение

Вы можете использовать Math.round для округления до указанного числа цифр. Если вы хотите два, как в этом случае, вы используете это так: Math.Round(inputValue, 2);, Ваш код будет выглядеть примерно так:

static double B2MB(long bytes)
{
    return Math.Round((bytes / 1024f) / 1024f, 2);
}

ПРИМЕЧАНИЕ. Поскольку числа с плавающей запятой не имеют бесконечной точности, это может привести к чему-то вроде 24.24999999999999999 вместо 24.25. Этот метод стоит знать, но если вы выводите его в виде строки, вы должны посмотреть на использование форматирования строк, как и другие ответы.

20.26496724167345 не так уж много. Это чуть больше 20. Это длинное текстовое представление, но это другой вопрос.

Вам нужно посмотреть, где вы отображаете номер. Например, вы можете использовать:

Console.WriteLine("{0:0.##}MB", value);

Или же

Console.WriteLine("{0:F2}MB", value);

См. Пользовательские строки числового формата и строки стандартного числового формата для получения дополнительной информации.

Для использования его на дисплее вы всегда можете использовать String.Format метод как в:

string mb = String.Format("{0:F2}MB", B2MB(bytes));

просто округлить его можно использовать

Math.Round((bytes / 1024f) / 1024f, 2);
Другие вопросы по тегам