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);