Вы должны знать, что в мире ИТ есть два типа мегабайтов (МБ).
(A) 1 MB = 1 миллион (1 000 000) байт.
Эта MB используется для подарков емкости накопителей на жестких магнитных дисках, DVD и BD, и емкости связи в сетях и т.д.
(B) 1 MB (точнее 1 МиБ) = байты могут быть решены 20 адресных строк = 2^20 (1 048 576) байтов.
Этот MB используется для представления емкости полупроводниковой памяти, такой как RAM, ROM.
Вы можете знать, что данные в ОЗУ адресованы несколькими адресными строками, каждая из которых имеет значение 0 или 1. Если в памяти имеется 10 адресных линий и 8 линий данных, 2^10 (1024) адреса байтов (8 бит) могут быть сохранены. Емкость такой памяти не называлась «1 кило и 24 байта памяти», а «1 килобайтная память». Увеличивая объем памяти, память размером 2^20 байт стала называться 1 мегабайтной памятью.
Если вы используете слово «MB» в смысле (А), вы должны исправить строку в коде
return ($size/(1024 * 1024));
в
return ($size/(1000 * 1000));
Исправленный код даст вам ответ 0,001024 МБ.
Если вы используете слово «MB» в смысле (B), то 0.0009765625 МБ - правильный ответ.
Существует два вида МБ, поэтому есть два вида правильного ответа.
Это зависит от того, какой ответ вы хотите получить.
Вам лучше взять калькулятор, чтобы подтвердить ваше предположение, что действительно 1/1024 (подсказка: это не 0.001024) –
1024 байта -> 1 КБ -> 1/1024 МБ. Но результат 1/1024 не равен 0,001024, потому что мощность 2 из 1024 не равна 1000000. –