繁体   English   中英

限制PHP中的位数

[英]Limiting Number of Digits in PHP

我正在使用PHP显示表中的文件列表的大小。 我想显示它们的大小(以兆字节为单位,而不是默认字节)。 我遇到的问题是我得到了非常长的小数,这对于这个目的是不切实际的。

这是我到目前为止的内容:

print((filesize("../uploads/" . $dirArray[$index])) * .000000953674316 . " MB");

6.7710876436E-5 MB正确转换该值,但会将其从71 B更改为6.7710876436E-5 MB

我认为E-5就像x10^-5 ,可能会正确加起来,但是有没有办法我可以减少掉多少个数字呢? 如果它显示为“ 00.00 MB”,对我来说还好,那么大多数文件将比该测试文件大得多。

您可以使用number_format()函数设置数字格式。

编辑:手册页包含您可能喜欢的用户评论: http : //es.php.net/manual/en/function.number-format.php#72969

具有良好的旧printf

printf("%.2f MB",filesize("../uploads/" . $dirArray[$index]) * .000000953674316);

也许是因为它的目的更加明确:

printf("%.2f MB",filesize("../uploads/" . $dirArray[$index]) / (1024 * 1024));

number_format()很好,并且不要忘记round()可以将数字四舍五入到您想要的任何精度。

这是简单的好函数: Quick PHP

如果您还需要其他单位,则可以使用我几年前写的函数:

<?php
function human_filesize($size, $precision = 2)
{
   $a_size = array('B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB');
   $count  = count($a_size) - 1;
   $i = 0;
   while ($size / 1024 >= 1 && $count >= $i) {
       $size = $size / 1024;
       $i++;
   }
   return round($size, $precision) . ' ' . $a_size[$i];
}

// =========
// USAGE
// =========

// Output: 34.35 MiB
echo human_filesize(filesize('file.zip'));

// Output: 34 MiB
echo human_filesize(filesize('file.zip'), 0);

// Output: 34.35465 MiB
echo human_filesize(filesize('file.zip'), 5);
?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM