Formater un nombre, façon number format de php

Contenu du snippet

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 / Exemple :


/*

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

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.