限制PHP中的位数
我正在使用PHP显示表中的文件列表有多大。我想用兆字节来显示它们的大小,而不是默认的字节。我遇到的问题是,我得到了非常长的小数,这对于这个目的是不切实际的 以下是我目前掌握的情况: printfilesize../uploads/$dirArray[$index]*.000000 953674316。MB 它可以正确地转换值,但会将例如71 B更改为6.7710876436E-5 MB限制PHP中的位数,php,string,digits,Php,String,Digits,我正在使用PHP显示表中的文件列表有多大。我想用兆字节来显示它们的大小,而不是默认的字节。我遇到的问题是,我得到了非常长的小数,这对于这个目的是不切实际的 以下是我目前掌握的情况: printfilesize../uploads/$dirArray[$index]*.000000 953674316。MB 它可以正确地转换值,但会将例如71 B更改为6.7710876436E-5 MB 我认为E-5类似于x10^-5,可能加起来是正确的,但有没有一种方法可以将它减少到多少个数字?如果它显示为00
我认为E-5类似于x10^-5,可能加起来是正确的,但有没有一种方法可以将它减少到多少个数字?如果它显示为00.00 MB,我觉得没问题,大多数文件将比这个测试文件大得多。您可以使用该函数格式化数字
编辑:手册页面包含您可能喜欢的用户注释:您可以使用该功能格式化数字 编辑:手册页面包含您可能喜欢的用户评论:number\u格式很好,不要忘记可以将数字四舍五入到您想要的任何精度。number\u格式很好,不要忘记可以将数字四舍五入到您想要的任何精度。使用good old: 也许,因为更清楚的是意图是什么:
printf("%.2f MB",filesize("../uploads/" . $dirArray[$index]) / (1024 * 1024));
与好老:
也许,因为更清楚的是意图是什么:
printf("%.2f MB",filesize("../uploads/" . $dirArray[$index]) / (1024 * 1024));
这是一个简单的nice函数:这是一个简单的nice函数:如果您还需要其他单元,您可以使用我多年前编写的函数:
<?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);
?>
如果您还需要其他单元,可以使用我多年前编写的函数:
<?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);
?>