javascript - 添加千位分隔符并保留小数位

时间:2012-10-31 16:08:55

标签: javascript

  

可能重复:
  how to print number with commas as thousands separators in Javascript

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

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

如果我传入10000,我会按预期获得10,000。

然而,传入10,000.00我得到1,000,0.00。

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

2 个答案:

答案 0 :(得分:6)

请勿使用.,请使用\d

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

答案 1 :(得分: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