Подскажите пожалуйста, как сделать, чтобы при числе 1045 выводилось не "1,0K", а "1К", а при 1050 - "1,1К" и т.д. Чтобы в конце не было "...,0". Без регулярных выражений для быстрого выполнения.
1045 - 1K
1050 - 1,1K
5045 - 5K
5060 - 5,1K
...
function formatToHuman($n = 0, $d = 1)
{
if ($n == 0) {
return;
} elseif ($n < 1000) {
return sprintf('%d', $n);
} elseif ($n < 1000000) {
return number_format($n / 1000, $d, ',', '') . 'K';
} elseif ($n >= 1000000 && $n < 1000000000) {
return number_format($n / 1000000, $d, ',', '') . 'M';
} elseif ($n >= 1000000000 && $n < 1000000000000) {
return number_format($n / 1000000000, $d, ',', '') . 'B';
}
return sprintf('%d%s', floor($n / 1000000000000), 'T+');
}
sandbox.onlinephpfunctions.com/code/5d1d8fe14bb982...
update
Это число для показа кол-ва лайков, не Кб, Мб, Тб.