Une methode JavaScript équivalente à number_format de PHP :
/*------------ Script by ZemilZed --------------*/
// NUMBER_FORMAT EN JAVASCRIPT------------------------------------------------------
Number.prototype.number_format = function() { // la déclaration des variables correspond à l'ordre des arguments
var nbDecimales = 2, sepDecimales = '.', carSepMilliers = ','; // les valeurs par défaut des arguments
var nbArgs = arguments.length; // le nombre d'arguments
if (isNaN(this) || !(new RegExp('0|1|3', 'g').test(nbArgs))) return false; // si la valeur recue n'est pas numérique ou que je n'ai pas un nombre cohérent d'arguments
switch (nbArgs) { // selon le nombre d'arguments
case 3: sepDecimales = arguments[1]; carSepMilliers = arguments[2]; // 3 = séparateur milliers, 2 = sép décimale,
case 1: nbDecimales = parseInt(arguments[0]); // 1 = nb décimale
}
var puiss = Math.pow(10, nbDecimales); // puiss sert au calcul d'exposant pour l'arrondi à nbDecimales après sepDecimales
var intNb = parseInt(this), intStr = intNb.toString(), n = intStr.length; // intNb = valeur entière, intStr = valeur entière format texte, n = le nombre de caractère de la valeur entière
if (!isNaN(this) && this == 0) return this + (nbDecimales ? sepDecimales + this.toFixed(nbDecimales).substr(2) : ''); // si la valeur recue est nulle
return ((n % 3 && n > 3) ? intStr.substr(0, n % 3) + carSepMilliers : ( n < 6 ) ? intStr : '') // sortie de la méthode : moins de 1000, puis découper la chaine en paquets de trois caractères,
+ ((n > 3) ? intStr.substr(n % 3).match(new RegExp('[0-9]{3}', 'g')).join(carSepMilliers) : '') // les milliers et le séparateur des milliers
+ (nbDecimales ? sepDecimales + (((Math.round(this*puiss)/puiss).toFixed(nbDecimales)).toString()).substring(n+1) : ''); // le séparateur et les décimales.
} // fin de méthode !!!
// DECLINAISON DE LA METHODE DE CONVERTION DE FORMAT NUMERIQUE----------------------
Number.prototype.nbFormatFrancais = function() { // afficher une valeur en format français
return this.number_format(arguments[0] ? arguments[0] : 2, ',', ' ');
} // fin de sous méthode
Number.prototype.nbEnglishFormat = function() { // afficher une valeur en format anglais
return this.number_format(arguments[0] ? arguments[0] : 2, '.', ',');
} // fin de sous méthode
Number.prototype.nbFormatCalc = function() { // afficher une valeur en format calculatrice
return this.number_format(arguments[0] ? arguments[0] : 2, '.', '\'');
} // fin de sous méthode