Nodejs Money Format toMoney(decimals, decimal_sep, thousands_sep)

Here you can find the source of toMoney(decimals, decimal_sep, thousands_sep)

Method Source Code

/* http://stackoverflow.com/a/2866613/211088
decimal_sep: character used as deciaml separtor, it defaults to '.' when omitted
thousands_sep: char used as thousands separator, it defaults to ',' when omitted
*///from www . j  a  v a  2 s .co m
Number.prototype.toMoney = function(decimals, decimal_sep, thousands_sep)
{
   var n = this,
   c = isNaN(decimals) ? 2 : Math.abs(decimals), //if decimal is zero we must take it, it means user does not want to show any decimal
   d = decimal_sep || '.', //if no decimal separator is passed we use the dot as default decimal separator (we MUST use a decimal separator)

   /*
   according to [http://stackoverflow.com/questions/411352/how-best-to-determine-if-an-argument-is-not-sent-to-the-javascript-function]
   the fastest way to check for not defined parameter is to use typeof value === 'undefined'
   rather than doing value === undefined.
   */
   t = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, //if you don't want to use a thousands separator you can pass empty string as thousands_sep value

   sign = (n < 0) ? '-' : '',

   //extracting the absolute value of the integer part of the number and converting to string
   i = parseInt(n = Math.abs(n).toFixed(c)) + '',

   j = ((j = i.length) > 3) ? j % 3 : 0;
   return sign + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');
};

Related

  1. toMoney()
    Number.prototype.toMoney = function() {
      return '$' + this.toFixed(2);
    };
    
  2. toMoney(c, d, t)
    Number.prototype.toMoney = function(c, d, t){
      var n = this, 
          c = isNaN(c = Math.abs(c)) ? 2 : c, 
          d = d == undefined ? "." : d, 
          t = t == undefined ? "," : t, 
          s = n < 0 ? "-" : "", 
          i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", 
          j = (j = i.length) > 3 ? j % 3 : 0;
         return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
    ...
    
  3. toMoney(currency)
    Number.prototype.toMoney = function (currency) {
        currency = currency ? currency : "$";
        if (currency === "0.00") {
            return "${0}".format(currency);
        return currency + "" + this.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, "$1,");
    
  4. toMoney(decimals, decimal_sep, thousands_sep)
    Number.prototype.toMoney = function(decimals, decimal_sep, thousands_sep) {
       var n = this;
       var c = isNaN(decimals) ? 0 : Math.abs(decimals);
       var d = decimal_sep || '.';
       var t = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
       var sign = (n < 0) ? '-' : '';
       var i = parseInt(n = Math.abs(n).toFixed(c), 10) + '';
       var j = ((j = i.length) > 3) ? j % 3 : 0;
       return sign + (j ? i.substr(0, j) + t : '') + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : '');
    ...
    
  5. toMoney(decimals, decimal_sep, thousands_sep)
    Number.prototype.toMoney = function(decimals, decimal_sep, thousands_sep)
       var n = this,
       c = isNaN(decimals) ? 2 : Math.abs(decimals), 
       d = decimal_sep || ',', 
       t = (typeof thousands_sep === 'undefined') ? '.' : thousands_sep, 
       sign = (n < 0) ? '-' : '',
       i = parseInt(n = Math.abs(n).toFixed(c)) + '', 
       j = ((j = i.length) > 3) ? j % 3 : 0; 
    ...
    
  6. money(c, d, t)
    Number.prototype.money = function(c, d, t){
    var n = this*1000, 
        c = isNaN(c = Math.abs(c)) ? 0 : c, 
        d = d == undefined ? "." : d, 
        t = t == undefined ? "," : t, 
        s = n < 0 ? "-" : "", 
        i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", 
        j = (j = i.length) > 3 ? j % 3 : 0;
       const money = s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
    ...
    
  7. money(decPlaces, thouSeparator, decSeparator, appendix, prefix)
    Number.prototype.money = function(decPlaces, thouSeparator, decSeparator, appendix, prefix) {
        var n = this,
            decPlaces = isNaN(decPlaces = Math.abs(decPlaces)) ? 2 : decPlaces,
            decSeparator = decSeparator == undefined ? "." : decSeparator,
            thouSeparator = thouSeparator == undefined ? "," : thouSeparator,
            prefix = prefix || '',
            appendix = appendix || '',
            sign = n < 0 ? "-" : "",
            i = parseInt(n = Math.abs(+n || 0).toFixed(decPlaces)) + "",
    ...