

/*
* * +-------------------------------------+
* * Number.prototype.nombreFormate
* * +-------------------------------------+
* * Params (facultatifs):
* * - Int decimales: nombre de decimales (exemple: 2)
* * - String signe: le signe precedent les decimales (exemple: "," ou ".")
* * - String separateurMilliers: comme son nom l'indique
* * Returns:
* * - String chaine formatee
* */
 Number.prototype.nombreFormate = function (decimales, signe, separateurMilliers) {
 var _sNombre = String(this), i, _sRetour = "", _sDecimales = "";
 if (decimales == undefined) decimales = 2;
 if (signe == undefined) signe = '.';
 if (separateurMilliers == undefined) separateurMilliers = ' ';

 function separeMilliers (sNombre) {
 var sRetour = "";
 while (sNombre.length % 3 != 0) {
 sNombre = "0"+sNombre;
 }
 for (i = 0; i < sNombre.length; i += 3) {
 if (i == sNombre.length-1) separateurMilliers = '';
 sRetour += sNombre.substr(i, 3)+separateurMilliers;
 }
 while (sRetour.substr(0, 1) == "0") {
 sRetour = sRetour.substr(1);
 }
 return sRetour.substr(0, sRetour.lastIndexOf(separateurMilliers));
 }
 if (_sNombre.indexOf('.') == -1) {
 for (i = 0; i < decimales; i++) {
 _sDecimales += "0";
 }
 _sRetour = separeMilliers(_sNombre)+signe+_sDecimales;
 } else {
 var sDecimalesTmp = (_sNombre.substr(_sNombre.indexOf('.')+1));
 if (sDecimalesTmp.length > decimales) {
 var nDecimalesManquantes = sDecimalesTmp.length - decimales;
 var nDiv = 1;
 for (i = 0; i < nDecimalesManquantes; i++) {
 nDiv *= 10;
 }
 _sDecimales = Math.round(Number(sDecimalesTmp) / nDiv);
 }
 _sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')))+String(signe)+_sDecimales;
 }
 return _sRetour;
 }


