diff --git a/app/Helpers/Number.php b/app/Helpers/Number.php index 3f661f62b..fd9d1b1ab 100644 --- a/app/Helpers/Number.php +++ b/app/Helpers/Number.php @@ -6,6 +6,26 @@ class Number extends SupportNumber { + /** + * Convert the given number to a specific bit order of magnitude. + */ + public static function bitsToMagnitude(int|float $bits, int $precision = 0, string $magnitude = 'kbit'): float + { + $value = match ($magnitude) { + 'kbit' => $bits * 1000, + 'mbit' => $bits * pow(1000, -2), + 'gbit' => $bits * pow(1000, -3), + 'tbit' => $bits * pow(1000, -4), + 'pbit' => $bits * pow(1000, -5), + 'ebit' => $bits * pow(1000, -6), + 'zbit' => $bits * pow(1000, -7), + 'ybit' => $bits * pow(1000, -8), + default => $bits, + }; + + return static::format($value, $precision); + } + /** * Convert the given number to its largest bit order of magnitude. *