3

可能重复:
如何在 Javascript 中使用逗号作为千位分隔符打印数字

我有一个函数可以将千位分隔符添加到一个数字中,但是当传入小数时它不能正常工作:

function thousandSep(val) {
        return String(val).split("").reverse().join("")
                      .replace(/(.{3}\B)/g, "$1,")
                      .split("").reverse().join("");
    }

如果我通过 10,000,我按预期得到 10,000。

但是,传入 10,000.00 我得到 1,000,0.00。

如何修改函数以处理小数?

4

2 回答 2

7

不使用.,使用\d

function thousandSep(val) {
    return String(val).split("").reverse().join("")
                  .replace(/(\d{3}\B)/g, "$1,")
                  .split("").reverse().join("");
}
于 2012-10-31T16:16:33.807 回答
4
function format(n, sep, decimals) {
    sep = sep || "."; // Default to period as decimal separator
    decimals = decimals || 2; // Default to 2 decimals

    return n.toLocaleString().split(sep)[0]
        + sep
        + n.toFixed(decimals).split(sep)[1];
}

format(4567354.677623); // 4,567,354.68
于 2012-10-31T16:16:29.383 回答