我正在使用https://stackoverflow.com/users/227532/mef编写的PHP
函数https://stackoverflow.com/a/2510459/425964将字节格式化为千字节、兆字节、千兆字节等。@Mef
问题是:
echo formatBytes(9287695, 2);
退货8.86 MB
。不应该9.3 MB
吗?我在这里错过了什么吗?
谢谢。
我正在使用https://stackoverflow.com/users/227532/mef编写的PHP
函数https://stackoverflow.com/a/2510459/425964将字节格式化为千字节、兆字节、千兆字节等。@Mef
问题是:
echo formatBytes(9287695, 2);
退货8.86 MB
。不应该9.3 MB
吗?我在这里错过了什么吗?
谢谢。
它不应该是 9.3 MB,当转换为 KB / MB 等时,字节总是会减少,因为它乘以 1024。
所以如果字节数以 92 开头.. 它永远不会导致 9.3 MB
我想 8.86 是正确的值。
9287695/1024/1024=8.86
9287695/1000/1000=9.30
1 MB = 1024 KB = 1024*1024 字节
内存单位
Bit=a 1 or 0
Byte=8 Bits
Kilobyte=1024 Bytes
Megabyte=1024 Kilobytes
Gigabyte=1024 Megabytes
Terabyte=1024 Gigabytes
所以 9287695 字节实际上是 8.86 MB
IT 界对于区分 Mebi* 和 Mega*、Kibi* 和kilo* 存在很多困惑。您实际上是完全正确的,因为 8.86 的正确后缀应该是“MiB”而不是“MB”。
这是因为 1 MiB = 1024 KiB 和 1 KiB = 1024 B。但是 1 MB = 1000 kB 和 1 kB = 1000 B。
从而混乱。
所以 8.86 是 OK ( (9287695/1024)/1024 = 8,857
) 只要是8.86 MiB
.
请参阅此处了解更多信息:http ://en.wikipedia.org/wiki/Mebibyte