begin process at 2008 08 28 22:20:54
1 233 393 membres
485 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FORMATER UN NOMBRE, FAÇON NUMBER FORMAT DE PHP


Information sur la source

Description

Formate un nombre pour l'affichage (retourne une chaîne représentant un nombre formaté)
Permet de choisir le nombre de décimales, le signe precedent les decimales, le separateur de milliers
--------------------------------------
Exemples:
var monEntier = 1234567891011;
var monFlottant = 12345.1556;
monEntier.nombreFormate(); // 1 234 567 891 011.00
monFlottant.nombreFormate(3, ',', '`'); // 12`345,156
--------------------------------------
En esperant que ca pourra servir a qqn

Source

  • /*
  • * +-------------------------------------+
  • * 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;
  • }
/*
 * +-------------------------------------+
 * 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;
}
  • signaler à un administrateur
    Commentaire de rothenboy le 23/05/2007 11:02:26

    Merci beaucoup.
    Ce code me fut très bénéfique. En effet, je m'en suis servi en actionscript afin d'avoir une plus belle visualisation de mes chiffres.
    Encore merci

  • signaler à un administrateur
    Commentaire de jijedslenoir le 01/10/2007 03:06:17

    Il manque un traitement lorsqu'il y a une partie décimale d'une taille inférieure au nombre de décimale à retourner.
    J'ajouterai, par exemple, le else suivant pour le 'if (sDecimalesTmp.length > decimales)':
    } else {
        _sDecimales = sDecimalesTmp;
        for (i = sDecimalesTmp.length; i < decimales; i++) {
        _sDecimales += "0";
        }     
    }

  • signaler à un administrateur
    Commentaire de Chrigou le 15/11/2007 09:31:03

    Il y a encore un bug... mais je ne sais pas comment le corriger !
    Exemple:
      var a=0.07001;
      document.write(a.nombreFormate(2, ':', ''));
    n'affcihe pas 0.07 mais .7   pourquoi ?

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS