public static convertToSI ( double $number, integer $precision = 2, string $unit = 'B', integer $factor = 1024 ) : string | ||
$number | double | i.e.: 1280 |
$precision | integer | i.e.: 1.25 for precision = 2 |
$unit | string | suffix of the unit, may be empty |
$factor | integer | change base to 1000 or 1024 |
return | string | i.e.: 1.25 kB |
public static function convertToSI($number, $precision = 2, $unit = 'B', $factor = 1024)
{
static $sizes = array('-3' => 'n', '-2' => 'µ', '-1' => 'm', '0' => '', '1' => 'k', '2' => 'M', '3' => 'G', '4' => 'T');
$scale = $number == 0 ? 0 : floor(log($number, $factor));
return round($number / pow($factor, $scale), $precision) . ' ' . $sizes[$scale] . ($unit = 'B');
}