Quesito interessante. Mi sono fatto una funzioncina.
Codice PHP:
<?php
function my_number_format ($number , $decimals = 0 , $dec_point = "." ,$thousands_sep = "," ) {
// Separazione parte intera e parte decimale
sscanf($number,"%d.%d",$int,$deci);
$rev = strrev($int);
// Parte decimale
$dec = trim(substr($deci,0,$decimals));
$dec = $dec.str_repeat('0',$decimals-strlen($dec));
// Parte intera
$i = strlen($int);
$res = "";
for ($j=0;$j<$i;$j=$j+3) {
$res = $res." ".substr($rev,$j, 3);
}
// Risultato finale
$res = strrev($res);
$res = str_replace(" ",$thousands_sep,trim($res));
if ($dec!="") {$res = $res.$dec_point.$dec;}
return $res;
} // function my_number_format ($number , $decimals = 0 , $dec_point = "." ,$thousands_sep = "," )
$number = 1888234.5678;
$res = my_number_format($number,2);
print "$number => $res <br>";
$number = 1888234;
$res = my_number_format($number,2);
print "$number => $res <br>";
$number = 1888234.5;
$res = my_number_format($number,2);
print "$number => $res <br>";
$number = 1888234.5678;
$res = my_number_format($number,2,"."," ");
print "$number => $res <br>";
$number = 1.5;
$res = my_number_format($number,2);
print "$number => $res <br>";
$number = 12.5;
$res = my_number_format($number,2);
print "$number => $res <br>";
$number = 123.5;
$res = my_number_format($number,2);
print "$number => $res <br>";
$number = 1234.5;
$res = my_number_format($number,2);
print "$number => $res <br>";
$number = 1234.5;
$res = my_number_format($number,2,","," ");
print "$number => $res <br>";
$number = 1888234.5678;
$res = my_number_format($number,3);
print "$number => $res <br>";
$number = 1888234.5678;
$res = my_number_format($number,0,"."," ");
print "$number => $res <br>";