public function convert() { $formatter = new \NumberFormatter($this->locale, \NumberFormatter::PATTERN_DECIMAL); if ($this->number < 0) { return $this->number; } foreach ($this->binaryPrefixes as $size => $unitPattern) { if ($size <= $this->number) { $value = $this->number >= self::CONVERT_THRESHOLD ? $this->number / (double) $size : $this->number; $formatter->setPattern($unitPattern); return $formatter->format($value); } } return $formatter->format($this->number); }
public static function preciseBinarySuffix($number, $precision, $locale = 'en') { $binarySuffix = new BinarySuffix($number, $locale, $precision); return $binarySuffix->convert(); }