[英]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.