如何在一个数字中应用千分隔符并将其作为数字本身?

时间:2015-08-10 12:53:51

标签: javascript jquery number-formatting

我不知道这个问题是否重复,因为我无法找到解决方案。

我有一个数字,比如12345,我想将千位分隔符用作逗号(,),代码是

12345.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");

我的字符串为12,345。我想把它作为一个数字。

如果我使用“Number()”或“parseFloat()”,它将以NaN形式出现。我不知道如何将带有千位分隔符的字符串转换为带千位分隔符的数字

我的案子有解决方法吗?

1 个答案:

答案 0 :(得分:0)

常见的解决方案是编写一个添加逗号的函数:

//copied from http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript
function numberWithCommas(x) {
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
}

更好的解决方案可能是覆盖默认的toString()方法,这样您就不必在每次计算时来回转换它:

Number.prototype.toString = function numToString() {
    var parts = x.toString().split(".");
    parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
    return parts.join(".");
}

您可以像使用任何正常数字一样分配和操作数字,但在打印时会添加逗号。