212
countformat
count_format
SYNOPSIS
count_format($n, $point='.', $sep=',', $spacing='')
DESCRIPTION
count_format returns the string representation of the counter $n formatted in a compact form.
If $n is less than 10000, $n is returned with the thousand separator $sep.
If $n is greater than or equal to 10000, $n is rounded to one decimal place with $point as a decimal point and suffixed with the unit k or M separated with $spacing.
If $n is negative, count_format returns 0.
EXAMPLE
To format a count:
php > require 'library/countformat.php';
php > echo count_format(1234);
1,234
php > echo count_format(12345);
12.3k
php > echo count_format(1234567);
1.2M
For a display in French:
php > echo count_format(1234, ',', ' ', ' ');
1 234
php > echo count_format(12345, ',', ' ', ' ');
12,3 k
php > echo count_format(1234567, ',', ' ', ' ');
1,2 M
A decimal number is rounded:
php > echo count_format(12.34);
12
php > echo count_format(1234.5);
1,235
CODE
- function count_format($n, $point='.', $sep=',', $spacing='') {
- if ($n < 0) {
- return 0;
- }
- if ($n < 10000) {
- return number_format($n, 0, $point, $sep);
- }
- $d = $n < 1000000 ? 1000 : 1000000;
- $f = round($n / $d, 1);
- return number_format($f, $f - intval($f) ? 1 : 0, $point, $sep) . $spacing . ($d == 1000 ? 'k' : 'M');
- }
Comments