• Модуль: intranet
  • Путь к файлу: ~/bitrix/modules/intranet/lib/ustat/ustat.php
  • Класс: BitrixIntranetUStatUStat
  • Вызов: UStat::getFormattedNumber
static function getFormattedNumber($number)
{
	static $numberMap = array(
		'0' => '0',
		'1' => '1',
		'2' => '2',
		'3' => '3',
		'4' => '4',
		'5' => '5',
		'6' => '6',
		'7' => '7',
		'8' => '8',
		'9' => '9',
		'.' => 'point',
		'k' => 'k',
		'm' => 'm',
	);

	$strNumber = $number;

	if ($number > 999)
	{
		// short to k|m
		if ($number < 10000)
		{
			// x.y k
			$strNumber = floor($number / 100);
			$strNumber = ($strNumber / 10) . 'k';
		}
		elseif ($number < 1000000)
		{
			//x k
			$strNumber = floor($number / 1000) . 'k';
		}
		elseif ($number < 1000000 * 10)
		{
			// x.y m
			$strNumber = floor($number / 100000);
			$strNumber = ($strNumber / 10) . 'm';
		}
		else
		{
			// x m
			$strNumber = floor($number / 1000000) . 'm';
		}
	}

	$formatted = array();

	foreach (str_split($strNumber) as $char)
	{
		$formatted[] = array('char' => $char, 'code' => $numberMap[$char]);
	}

	return $formatted;
}