summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2024-05-29 14:52:56 +0200
committerSimon Rettberg2024-05-29 14:52:56 +0200
commit6c2a2060866803fb117c963aac39af545e4c0236 (patch)
treea6d4b770bbbc2e5a098c749da30916097c5f8a92
parent[rebootcontrol] Fix the "bogus" array to string warning (diff)
downloadslx-admin-6c2a2060866803fb117c963aac39af545e4c0236.tar.gz
slx-admin-6c2a2060866803fb117c963aac39af545e4c0236.tar.xz
slx-admin-6c2a2060866803fb117c963aac39af545e4c0236.zip
[inc/Util] filesize: Fix calculating number of decimals to display
-rw-r--r--inc/util.inc.php6
1 files changed, 3 insertions, 3 deletions
diff --git a/inc/util.inc.php b/inc/util.inc.php
index 267a3971..2568011b 100644
--- a/inc/util.inc.php
+++ b/inc/util.inc.php
@@ -95,14 +95,14 @@ class Util
* Convert given number to human-readable file size string.
* Will append Bytes, KiB, etc. depending on magnitude of number.
*
- * @param float|int $bytes numeric value of the filesize to make readable
+ * @param mixed $bytes numeric value of the filesize to make readable
* @param int $decimals number of decimals to show, -1 for automatic
* @param int $shift how many units to skip, i.e. if you pass in KiB or MiB
* @return string human-readable string representing the given file size
*/
public static function readableFileSize($bytes, int $decimals = -1, int $shift = 0): string
{
- // round doesn't reliably work for large floats, pick workaround depending on OS
+ // round doesn't reliably work for large floats, and we use strlen either way
$bytes = sprintf('%u', $bytes);
static $sz = array('Byte', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB');
$factor = (int)floor((strlen($bytes) - 1) / 3);
@@ -111,7 +111,7 @@ class Util
} else {
$bytes /= 1024 ** $factor;
if ($decimals === -1) {
- $decimals = 2 - strlen((string)floor($bytes)) - 1;
+ $decimals = 3 - strlen((string)floor($bytes));
}
}
return Dictionary::number((float)$bytes, $decimals) . "\xe2\x80\x89" . ($sz[$factor + $shift] ?? '#>PiB#');