Skip to content

Commit 280cd28

Browse files
committed
Display sizes like 1024 MB as 1 GB instead.
1 parent 5affaf9 commit 280cd28

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

webapp/src/Utils/Utils.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -430,18 +430,18 @@ public static function printhost(string $hostname, bool $full = false): string
430430
}
431431

432432
/**
433-
* Print (file) size in human readable format by using B,KB,MB,GB suffixes.
434-
* Input is a integer (the size in bytes), output a string with suffix.
433+
* Print (file) size in human-readable format by using B,KB,MB,GB suffixes.
434+
* Input is an integer (the size in bytes), output a string with suffix.
435435
*/
436436
public static function printsize(int $size, int $decimals = 1): string
437437
{
438438
$factor = 1024;
439439
$units = ['B', 'KB', 'MB', 'GB'];
440-
$display = (int)$size;
440+
$display = $size;
441441

442442
$exact = true;
443-
for ($i = 0; $i < count($units) && $display > $factor; $i++) {
444-
if (((int)$display % $factor)!=0) {
443+
for ($i = 0; $i < count($units) && $display >= $factor; $i++) {
444+
if (($display % $factor)!=0) {
445445
$exact = false;
446446
}
447447
$display /= $factor;

webapp/tests/Unit/Utils/UtilsTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -505,8 +505,11 @@ public function testPrintsize(): void
505505
{
506506
self::assertEquals("0 B", Utils::printsize(0));
507507
self::assertEquals("1000 B", Utils::printsize(1000));
508-
self::assertEquals("1024 B", Utils::printsize(1024));
508+
self::assertEquals("1023 B", Utils::printsize(1023));
509+
self::assertEquals("1 KB", Utils::printsize(1024));
509510
self::assertEquals("1.0 KB", Utils::printsize(1025));
511+
self::assertEquals("1.0 KB", Utils::printsize(1075));
512+
self::assertEquals("1.1 KB", Utils::printsize(1076));
510513
self::assertEquals("2 KB", Utils::printsize(2048));
511514
self::assertEquals("2.5 KB", Utils::printsize(2560));
512515
self::assertEquals("5 MB", Utils::printsize(5242880));

0 commit comments

Comments
 (0)