php перевести байты в мегабайты
Преобразование байтов в килобайты / мегабайты
У меня есть таблица вложений, которая хранит размер документа в байтах.
Мне нужно отобразить набор результатов всех документов в КБ или МБ. В КБ, если размер документа меньше 1 МБ, или в МБ, если размер документа превышает 1 МБ.
В данный момент у меня есть это в моем запросе, но я изо всех сил пытаюсь получить отображение должным образом отформатированным с точки зрения округления.
Вот несколько примеров значений:
346 байт также будет отображать 0 КБ, поэтому идеально отображать 1 КБ было бы идеально как минимум.
3 ответа
Как вы хотите округлить значения? Если вы хотите округлить, используйте ceiling() :
В исходном вопросе предлагалось округлить значения в большую сторону, когда говорилось
346 байт также будут отображать 0 КБ, поэтому в идеале отображение 1 КБ было бы идеальным как минимум
Однако поясняющие комментарии к ответу предполагают, что следует показывать десятичные значения, а не округлять:
Он отображает 2 МБ, хотя для 1458250 должно быть 1,45 МБ.
Далее в вопросе говорилось
Однако предложенный ответ, сформулированный в вопросе, рассматривал разбиение данных на 1000000 байтов, что на самом деле является приблизительным размером 1 мегабайт, и все предыдущие ответы следовали этому примеру. Как ни странно, при форматировании данных используется точное значение мегабайта: 1048576.
Округление до ближайшего значения
Если речь идет о размере файла, это консервативно и подсчитывается больше байтов, чем фактически сообщается.
Показаны 3 десятичных значения
Возможно, более точный и менее читаемый.
Правильное округление (в большую или меньшую сторону)