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;
}

Commentaires et avis

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 ?

signaler à un administrateur
Commentaire de soyd6391 le 26/05/2009 14:53:15

Pour le commentaire ci dessus j'ai ajouté ce bout de code:

if(_sRetour.length == decimales + 1){
    _sRetour ='0'+_sRetour;
}

Cet ajout est juste avant return _sRetour;

Ce script est top

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

formater un nombre [ par fredchan ] bonjour, je cherche une fonction ou un script me permettant de formater un nombre decimal toujours sous la forme MCDU.XX, c'est a dire toujours avec 2 léger problème avec un nombre [ par nougitch ] Bonjour,Quand je mets ceci : Number (document.form_update.bl1.value),&nbsp;cela marche.Quand je mets cela : Number (document.form_update.1-1-0-0-0-0-j Augmenter ou diminuer le chiffre d'un champ texte [ par Tilix ] Salut, J'ai un code javascript, avec une boucle qui repete plusieurs fois les champs form : <font color=" Chiffre en Indice ou exposant [ par Fab117 ] Salut,Est-il possible avec un code de mettre un chiffre en exposant ou en indice.Merci d'avance et bonne fin de journ&#233;e.Fab textarea avec nombre de ligne limité [ par aimie ] Bonjour !!j'ai un problème, je voudrais développer un textarea avec un nombre de ligne non vide limité et je n'y arrive pas. J'ai besoin d'aide , est compter le nombre de mot d'une ligne [ par aimie ] Bonjour !!je voudrais savoir comment accéder à une ligne d'un textarea afin de compter le nombre de mot.En effet, je parviens à compter le nombre de m compter le nombre de formulaire [ par lolorenzeb ] Bonjour à tous,Voila mon problème est que je n'arrive pas a compter un nombre de formulaire contenu dans ma page. Je m'explique. J'ai une page php qui Nombre d'actualisations limité [ par lordkriss ] Je souhaite effectuer un rafraichissement de page automatique (jusque là : rien de bien compliqué). Là où je me casse les dents c'est que je voudrais le nombre de trafic [ par adamess ] Bonjour Je ai comme information que 1G passante permet de délivrer 10.000 pages de 100 Ko chacune par mois. Est-ce que cette information est just "Montée/descente" [ par Sniperman113 ] Bonjour,Alors je vais vous expliquer ma situation très clairement afin d'obtenir une aide la plus efficace possible.Enfaite, je vais prendre un exempl


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,530 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.