如何(始终)在JavaScript中将逗号添加到小数分隔符

时间:2014-02-06 17:36:47

标签: javascript

我正在使用以下脚本将点作为千位分隔符和逗号作为小数点分隔符使用this问题。

var numero = 1000.00;

function formatThousands(n, dp) {
    var s = ''+(Math.floor(n)),
        d = n % 1,
        i = s.length,
        r = '';
    while ((i -= 3) > 0) {
        r = '.' + s.substr(i, 3) + r;
    }

    return s.substr(0, i + 3) + r + (d ? ',' + Math.round(d * Math.pow(10,dp||2)) : '');
}

alert(formatThousands(numero,2));
/// http://jsperf.com/compare-two-format-thousands

另见jsfiddle

这是正常的,除了整数。 例如,数字1000将返回1.000,我希望它返回1.000,00,因为数字是指欧元货币。

如何在每个数字中添加2位小数(美分)?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这有用吗?

function formatThousands(n, dp) {
  var s = ''+(Math.floor(n)), d = n % 1, i = s.length, r = '';
  while ( (i -= 3) > 0 ) { r = '.' + s.substr(i, 3) + r; }
  s = s.substr(0, i + 3) + r + (d ? ',' + Math.round(d * Math.pow(10,dp||2)) : '');
  return s.charAt(-1) != ',' ? s+',00' : s;
}

编辑:

这个怎么样?

function formatThousands(n, dp) {
  n = (''+n).split('.');
  i = n[0];
  d = !(n[1]) ? '00' : n[1];
  n = i.match(/.{4}/g).join('.');
  return n + ',' + d;
}

http://jsfiddle.net/XC3sS/12/