【问题标题】:How to (always) add commas to decimal separator in JavaScript如何(总是)在 JavaScript 中将逗号添加到小数点分隔符
【发布时间】:2014-02-07 02:11:26
【问题描述】:

我正在使用以下脚本来使用点作为千位分隔符和逗号作为小数分隔符,这是我从 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 个小数(美分)?

感谢您的帮助!

【问题讨论】:

标签: javascript


【解决方案1】:

这行得通吗?

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/

【讨论】:

  • 只有当数字是整数时才有效。如果它是例如 1000.01 它不工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-02-19
  • 2021-12-25
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多