簡體   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