- Модуль: 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;
}