最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - Javascript Convert Number into given format - Stack Overflow

programmeradmin5浏览0评论

I got requirement of the java-script Number formatting like below

I need one function its having 2 parameters like

var number = 1000;
var format = #,###.0; //or #,### ; 

function ConvertNumber(number, format){   
    // this function need to return 1,000.0 if format is #,###.0
    // this function need to return 1,000 if format is #,### 
}

can anyone having this kind of function? your help is really appreciated thanks

I got requirement of the java-script Number formatting like below

I need one function its having 2 parameters like

var number = 1000;
var format = #,###.0; //or #,### ; 

function ConvertNumber(number, format){   
    // this function need to return 1,000.0 if format is #,###.0
    // this function need to return 1,000 if format is #,### 
}

can anyone having this kind of function? your help is really appreciated thanks

Share Improve this question edited Nov 22, 2012 at 5:54 Ayush 42.5k51 gold badges168 silver badges241 bronze badges asked Nov 22, 2012 at 5:51 Rohan PatilRohan Patil 1,9631 gold badge23 silver badges36 bronze badges 8
  • And what your function "ConvertNumber" should do? – polin Commented Nov 22, 2012 at 5:52
  • @polin that is what I wanted – Rohan Patil Commented Nov 22, 2012 at 5:54
  • @Alex link is for java functions and not able to understand – Rohan Patil Commented Nov 22, 2012 at 5:56
  • 1. What do you need to return if the value is 100 and the format is #,###.0? 2. Do you use only the given two formats? – prageeth Commented Nov 22, 2012 at 6:29
  • what do you want in return for 10000000... is 10,000,000 or 10000,000...?? – Naz Commented Nov 22, 2012 at 6:34
 |  Show 3 more ments

3 Answers 3

Reset to default 3

You can se the NumberFormatter plug-in from JQuery.

Here's an example of how you'd use this plugin.

$("#salary").blur(function(){
    $(this).format({format:"#,###.00", locale:"de"});
});

check this function...

var number = 1000; // int or float or string
var format = '#,###.0'; // you can put any format that you want... only string

function ConvertNumber(number, format){
    var tail=format.lastIndexOf('.');number=number.toString();
    tail=tail>-1?format.substr(tail):'';
    if(tail.length>0){if(tail.charAt(1)=='#'){
        tail=number.substr(number.lastIndexOf('.'),tail.length);
    }}
    number=number.replace(/\..*|[^0-9]/g,'').split('');
    format=format.replace(/\..*/g,'').split('');
    for(var i=format.length-1;i>-1;i--){
        if(format[i]=='#'){format[i]=number.pop()}
    }
    return number.join('')+format.join('')+tail;
}

// Examples
// ConvertNumber(1234,'#,###') === 1,234
// ConvertNumber(1234,'#,###.00') === 1,234.00
// ConvertNumber(1234,',###.00') === 1,234.00
// ConvertNumber(1234.4575,',###.##') === 1,234.45
// ConvertNumber(1234567890.4575,',###,###,###.##') === 1,234,567,890.45
// ConvertNumber(123.4575,',#,#.##') === 1,2,3.45
// ConvertNumber(123456.4575,'-#-#.##') === 1234-5-6.45
// ConvertNumber(1234567.4575,' ## ###.##') === 12 34 567.45

hope this function will be very helpful for you and them who have the same problem... best of luck...

Try this:

function ConvertNumber(number, decimals, dec_point, thousands_sep) {

  // Strip all characters but numerical ones.
  number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
  var n = !isFinite(+number) ? 0 : +number,
    prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
    sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
    dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
    s = '',
    toFixedFix = function (n, prec) {
      var k = Math.pow(10, prec);
      return '' + Math.round(n * k) / k;
    };

  // Fix for IE parseFloat(0.55).toFixed(0) = 0;
  s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
  if (s[0].length > 3) {
    s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
  }
  if ((s[1] || '').length < prec) {
    s[1] = s[1] || '';
    s[1] += new Array(prec - s[1].length + 1).join('0');
  }
  return s.join(dec);
}​

Example:

example 1: ConvertNumber(1234.5678, 2, '.', ',');
returns 1: '1,234.57'

example 2: ConvertNumber(1000);
returns 2: '1,000'

example 3: ConvertNumber(1000.55, 1);
returns 3: '1,000.6'

example 4: ConvertNumber(67000, 5, ',', '.');
returns 4: '67.000,00000'

example 5: ConvertNumber('1.20', 4);
returns 5: '1.2000'
发布评论

评论列表(0)

  1. 暂无评论