как установить десятичное значение (2) js datatables - PullRequest
0 голосов
/ 22 ноября 2018

Я пытаюсь установить мои десятичные числа в два (2), но я не могу добиться успеха.Любая помощь будет оценена.Я рассчитываю среднее число на просмотр столбца и среднее общее количество всех столбцов.Проблема, с которой я сталкиваюсь, состоит в том, что у меня есть до 14 позиций после десятичной точки, и я хотел бы уменьшить это значение до (2).Я работаю с Datatables и там указано использование .toFixed (2).Я пытался, но не могу решить это.см. ниже и скрипку

Я предоставил jsfiddle для моей ситуации.

Заранее спасибо

$('#dtcuidadhrs').DataTable({
responsive: true,
"footerCallback": function(tfoot, data, start, end, display) {
    var api = this.api();

    for (var i = 0; i < api.columns().count(); i++) {

        var columnDataTotal = api
            .column(i)
            .data();
        var theColumnTotal = columnDataTotal
            .reduce(function(a, b) {
                if (isNaN(a)) {
                    return '';
                } else {
                    a = parseFloat(a);
                }
                if (isNaN(b)) {
                    return '';
                } else {
                    b = parseFloat(b);
                }
                return (a + b).toFixed(2);
            }, 0);

        var columnData = api
           .column( i, { page: 'current'} )
           .data()
        var theColumnPage = columnData
            .reduce(function(a, b) {
                if (isNaN(a)) {
                    return '';
                } else {
                    a = parseFloat(a);
                }
                if (isNaN(b)) {
                    return '';
                } else {
                    b = parseFloat(b);
                }
                return (a + b).toFixed(2);
            }, 0);

        // Update footer
        $( api.column( 0 ).footer() ).html('Avarage');
        $(api.column(i).footer()).html(
            theColumnPage / columnData.count() + ' ('+ theColumnTotal / columnDataTotal.count() +' Total)'
        );
    }
}
});

1 Ответ

0 голосов
/ 22 ноября 2018

Глядя на скрипку JS, вы выполняете редукцию для суммирования среднего значения каждого столбца с использованием toFixed.

При выполнении вычислений лучше всего округлять только самое окончательное число (в противном случае потеря точностисерьезная проблема).Попробуйте следующее: я бы немного поменял рефакторинг, но вы поняли

// Update footer
            $( api.column( 0 ).footer() ).html('Avarage');
            $(api.column(i).footer()).html(
                theColumnPage / columnData.count() + ' ('+ parseFloat(theColumnTotal / columnDataTotal.count()).toFixed(2) +' Total)'
...