Javascript Jquery Datatable列之和显示无效结果
我使用jquery datatable页脚回调来查找两列的总和。对于前两列,它在页脚处给出了正确的总和值。但对于第三列,它给出了如下结果:Javascript Jquery Datatable列之和显示无效结果,javascript,jquery,datatables,Javascript,Jquery,Datatables,我使用jquery datatable页脚回调来查找两列的总和。对于前两列,它在页脚处给出了正确的总和值。但对于第三列,它给出了如下结果:1.0771827874123119e-11,因为第三列包含负值。是因为负值吗。我怎样才能解决这个问题 我正在使用以下javascript: $('.dataTablesSum1').DataTable({ "footerCallback": function (row, data, start, end, display) {
1.0771827874123119e-11
,因为第三列包含负值。是因为负值吗。我怎样才能解决这个问题
我正在使用以下javascript:
$('.dataTablesSum1').DataTable({
"footerCallback": function (row, data, start, end, display) {
var api = this.api(), data;
// Remove the formatting to get integer data for summation
var intVal = function (i) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '') * 1 :
typeof i === 'number' ?
i : 0;
};
// Total over all pages
total = api
.column(2)
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
}, 0);
total1 = api
.column(3)
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
}, 0);
total3 = api
.column(4)
.data()
.reduce(function (a, b) {
return intVal(a) + intVal(b);
}, 0);
// Update footer
$(api.column(2).footer()).html(
total
);
$(api.column(3).footer()).html(
total1
);
$(api.column(4).footer()).html(
total3
);
}
});
问题在于JS——它不擅长浮点运算,请在控制台中尝试以下操作:
-5000.02+7000.00
它返回“1999.97999996”
若要解决此问题,请使用
toFixed()
限制小数位数,请参阅。若要将值解析为Int,只需使用parseInt即可,但该列包含类似12.35的十进制值,甚至包含负值-2.56。所以我需要对上面的脚本进行任何更改吗?是的,您需要更改上面的脚本并使用ParseFloat仍然显示相同的错误也许一个小JSFIDLE来说明您的问题可能会有帮助是的。我修正了…:)