3

重複の可能性:
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 になります。

小数を処理するように関数を変更するにはどうすればよいですか?

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 に答える