Добавьте тысячи разделителя к общему количеству с JavaScript или jQuery?

У меня есть функция, которая суммирует столбец данных в таблице HTML. Это делает так превосходно, только я хотел бы иметь его, поместил запятые там, которые необходимы для разделения тысяч. Первоначально, Вы отметите, в добавляемых числах существуют запятые. Так, чтобы функция добавила их, они удалены. Как я добавляю запятые назад там?

<script type="text/javascript">
    function sumOfColumns(tableID, columnIndex, hasHeader) {
        var tot = 0;
        $("#" + tableID + " tr" + (hasHeader ? ":gt(0)" : ""))
          .children("td:nth-child(" + columnIndex + ")")
          .each(function() {
              tot += parseInt($(this).html().replace(',', ''));
          });
        return "Total Pounds Entered : " + tot;
    }
</script>
38
задан Matt 15 April 2010 в 14:54
поделиться

2 ответа

$ (this) .html (). Replace (',', '') не должен фактически изменять страницу. Вы уверены, что на странице удаляются запятые?

Если да, то эта функция addCommas должна помочь.

function addCommas(nStr) {
    nStr += '';
    var x = nStr.split('.');
    var x1 = x[0];
    var x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}
81
ответ дан 27 November 2019 в 03:04
поделиться

Это добавит разделители тысяч, сохраняя при этом десятичную часть данного числа:

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

Вы также можете проверить десятичный разделитель локали с помощью:

var sep = (0).toFixed(1)[1];
18
ответ дан 27 November 2019 в 03:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: