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
  1. function count_format($n, $point='.', $sep=',', $spacing='') {
  2.     if ($n < 0) {
  3.         return 0;
  4.     }
  5.  
  6.     if ($n < 10000) {
  7.         return number_format($n, 0, $point, $sep);
  8.     }
  9.  
  10.     $d = $n < 1000000 ? 1000 : 1000000;
  11.  
  12.     $f = round($n / $d, 1);
  13.  
  14.     return number_format($f, $f - intval($f) ? 1 : 0, $point, $sep) . $spacing . ($d == 1000 ? 'k' : 'M');
  15. }
SEE ALSO

timeformat

Comments

Your comment:
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip help 2000

Enter a maximum of 2000 characters.
Improve the presentation of your text with the following formatting tags:
[p]paragraph[/p], [b]bold[/b], [i]italics[/i], [u]underline[/u], [s]strike[/s], [quote]citation[/quote], [pre]as is[/pre], [br]line break,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]command[/code], [code=language]source code in c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].