DownloadNumbers
Esi\Utility\Numbers 
- 
inside(float | int $number, float | int $min, float | int $max): bool;
 
- 
outside(float | int $number, float | int $min, float | int $max): bool;
 
- 
random(int $min, int $max): int;
 
- 
ordinal(int $number): string;
 
- 
sizeFormat(int $bytes, int $precision = 0, string $standard = 'binary'): string;
 
 
inside
Determines if a number is inside the min and max. 
use Esi\Utility\Numbers;
var_dump(Numbers::inside(25, 24, 26)); // bool (true)
var_dump(Numbers::inside(25, 26, 27)); // bool (false)
var_dump(Numbers::inside(25.0, 24.0, 26.0)); // bool (true)
var_dump(Numbers::inside(25.0, 26.0, 27.0)); // bool (false)
 
outside
Determines if a number is outside the min and max. 
use Esi\Utility\Numbers;
var_dump(Numbers::outside(23, 24, 26)); // bool (true)
var_dump(Numbers::outside(25, 24, 26)); // bool (false)
var_dump(Numbers::outside(23.0, 24.0, 26.0)); // bool (true)
var_dump(Numbers::outside(25.0, 24.0, 26.0)); // bool (false)
 
random
Generate a cryptographically secure pseudo-random integer. 
use Esi\Utility\Numbers;
$int = Numbers::random(100, 250); // >= 100 <= 250
var_dump($int >= 100); // bool (true)
var_dump($int <= 250); // bool (true)
 
ordinal
Retrieve the ordinal version of a number.
Basically, it will append th, st, nd, or rd based on what the number ends with. 
use Esi\Utility\Numbers;
echo Numbers::ordinal(1); // 1st
echo Numbers::ordinal(102); // 102nd
echo Numbers::ordinal(143); // 143rd
echo Numbers::ordinal(1_004); // 1004th
 
sizeFormat
Format bytes to a human-readable format. 
use Esi\Utility\Numbers;
$sizes = [
    512 => 0,
    2_048 => 1,
    25_151_251 => 2,
    19_971_597_926 => 2,
    2_748_779_069_440 => 1,
    2_748_779_069_440 * 1_024 => 1,
    2_748_779_069_440 (1_024 1_024) => 1,
];
$readable = [];
foreach ($sizes as $size => $precision) {
    $readable[] = Numbers::sizeFormat($size, $precision);
}
print_r($readable);
/*
Array (
    0 => '512 B',
    1 => '2.0 KiB',
    2 => '23.99 MiB',
    3 => '18.60 GiB'
    4 => '2.5 TiB',
    5 => '2.5 PiB',
    6 => '2.5 EiB',
)
  |