我正在尝试将十进制数设置为二(2),但我无法成功。任何帮助,将不胜感激。我正在计算每个列视图的平均数量和所有列的平均总数。我面临的问题是,小数点后最多可以有14个位置,我只想将其减少到(2)。我正在使用数据表,并且指示使用.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)'
);
}
}
});
答案 0 :(得分:1)
看看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)'