how to set decimal value of (2) js datatables
up vote
0
down vote
favorite
Im trying to set my decimal numbers to two(2) but I cannot succeed. Any help would be appreciated. I am calculating the average number per column view and average total of all the column. The problem I'm facing is, that I have up to 14 position after the decimal point and I would like to reduce this to (2) only. I am working with Datatables and there is indicated the use of .toFixed(2). I tried but can not work it out. please see below and the fiddle
I provided a jsfiddle for my situation.
Thank you in advance
$('#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)'
);
}
}
});
javascript datatables decimal
add a comment |
up vote
0
down vote
favorite
Im trying to set my decimal numbers to two(2) but I cannot succeed. Any help would be appreciated. I am calculating the average number per column view and average total of all the column. The problem I'm facing is, that I have up to 14 position after the decimal point and I would like to reduce this to (2) only. I am working with Datatables and there is indicated the use of .toFixed(2). I tried but can not work it out. please see below and the fiddle
I provided a jsfiddle for my situation.
Thank you in advance
$('#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)'
);
}
}
});
javascript datatables decimal
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
Im trying to set my decimal numbers to two(2) but I cannot succeed. Any help would be appreciated. I am calculating the average number per column view and average total of all the column. The problem I'm facing is, that I have up to 14 position after the decimal point and I would like to reduce this to (2) only. I am working with Datatables and there is indicated the use of .toFixed(2). I tried but can not work it out. please see below and the fiddle
I provided a jsfiddle for my situation.
Thank you in advance
$('#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)'
);
}
}
});
javascript datatables decimal
Im trying to set my decimal numbers to two(2) but I cannot succeed. Any help would be appreciated. I am calculating the average number per column view and average total of all the column. The problem I'm facing is, that I have up to 14 position after the decimal point and I would like to reduce this to (2) only. I am working with Datatables and there is indicated the use of .toFixed(2). I tried but can not work it out. please see below and the fiddle
I provided a jsfiddle for my situation.
Thank you in advance
$('#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)'
);
}
}
});
javascript datatables decimal
javascript datatables decimal
asked Nov 22 at 15:14
Pascal Westrich
105
105
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
Looking at the JS fiddle, you are running a reduce to sum the average of each column using toFixed.
When doing calculations, it's best to only round on the very final number (otherwise loss of precision is a serious concern).
Try the following: I would refactor a bit, but you get the idea
// Update footer
$( api.column( 0 ).footer() ).html('Avarage');
$(api.column(i).footer()).html(
theColumnPage / columnData.count() + ' ('+ parseFloat(theColumnTotal / columnDataTotal.count()).toFixed(2) +' Total)'
Understood. Thank you very much Neal. what means I have to take out the toFixed in the average calculation and use only in the final.
– Pascal Westrich
Nov 22 at 15:27
No problem Pascal. The jest of it is, inside of your Reduce functions where you call return (a + b).toFixed(2); Replace it with return a+b. Then only round where I showed you (the absolute final step) :). This will make sure your numbers are a lot more accurate. See: en.wikipedia.org/wiki/Floating-point_arithmetic
– Neal
Nov 23 at 9:22
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
Looking at the JS fiddle, you are running a reduce to sum the average of each column using toFixed.
When doing calculations, it's best to only round on the very final number (otherwise loss of precision is a serious concern).
Try the following: I would refactor a bit, but you get the idea
// Update footer
$( api.column( 0 ).footer() ).html('Avarage');
$(api.column(i).footer()).html(
theColumnPage / columnData.count() + ' ('+ parseFloat(theColumnTotal / columnDataTotal.count()).toFixed(2) +' Total)'
Understood. Thank you very much Neal. what means I have to take out the toFixed in the average calculation and use only in the final.
– Pascal Westrich
Nov 22 at 15:27
No problem Pascal. The jest of it is, inside of your Reduce functions where you call return (a + b).toFixed(2); Replace it with return a+b. Then only round where I showed you (the absolute final step) :). This will make sure your numbers are a lot more accurate. See: en.wikipedia.org/wiki/Floating-point_arithmetic
– Neal
Nov 23 at 9:22
add a comment |
up vote
1
down vote
accepted
Looking at the JS fiddle, you are running a reduce to sum the average of each column using toFixed.
When doing calculations, it's best to only round on the very final number (otherwise loss of precision is a serious concern).
Try the following: I would refactor a bit, but you get the idea
// Update footer
$( api.column( 0 ).footer() ).html('Avarage');
$(api.column(i).footer()).html(
theColumnPage / columnData.count() + ' ('+ parseFloat(theColumnTotal / columnDataTotal.count()).toFixed(2) +' Total)'
Understood. Thank you very much Neal. what means I have to take out the toFixed in the average calculation and use only in the final.
– Pascal Westrich
Nov 22 at 15:27
No problem Pascal. The jest of it is, inside of your Reduce functions where you call return (a + b).toFixed(2); Replace it with return a+b. Then only round where I showed you (the absolute final step) :). This will make sure your numbers are a lot more accurate. See: en.wikipedia.org/wiki/Floating-point_arithmetic
– Neal
Nov 23 at 9:22
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
Looking at the JS fiddle, you are running a reduce to sum the average of each column using toFixed.
When doing calculations, it's best to only round on the very final number (otherwise loss of precision is a serious concern).
Try the following: I would refactor a bit, but you get the idea
// Update footer
$( api.column( 0 ).footer() ).html('Avarage');
$(api.column(i).footer()).html(
theColumnPage / columnData.count() + ' ('+ parseFloat(theColumnTotal / columnDataTotal.count()).toFixed(2) +' Total)'
Looking at the JS fiddle, you are running a reduce to sum the average of each column using toFixed.
When doing calculations, it's best to only round on the very final number (otherwise loss of precision is a serious concern).
Try the following: I would refactor a bit, but you get the idea
// Update footer
$( api.column( 0 ).footer() ).html('Avarage');
$(api.column(i).footer()).html(
theColumnPage / columnData.count() + ' ('+ parseFloat(theColumnTotal / columnDataTotal.count()).toFixed(2) +' Total)'
answered Nov 22 at 15:19
Neal
258111
258111
Understood. Thank you very much Neal. what means I have to take out the toFixed in the average calculation and use only in the final.
– Pascal Westrich
Nov 22 at 15:27
No problem Pascal. The jest of it is, inside of your Reduce functions where you call return (a + b).toFixed(2); Replace it with return a+b. Then only round where I showed you (the absolute final step) :). This will make sure your numbers are a lot more accurate. See: en.wikipedia.org/wiki/Floating-point_arithmetic
– Neal
Nov 23 at 9:22
add a comment |
Understood. Thank you very much Neal. what means I have to take out the toFixed in the average calculation and use only in the final.
– Pascal Westrich
Nov 22 at 15:27
No problem Pascal. The jest of it is, inside of your Reduce functions where you call return (a + b).toFixed(2); Replace it with return a+b. Then only round where I showed you (the absolute final step) :). This will make sure your numbers are a lot more accurate. See: en.wikipedia.org/wiki/Floating-point_arithmetic
– Neal
Nov 23 at 9:22
Understood. Thank you very much Neal. what means I have to take out the toFixed in the average calculation and use only in the final.
– Pascal Westrich
Nov 22 at 15:27
Understood. Thank you very much Neal. what means I have to take out the toFixed in the average calculation and use only in the final.
– Pascal Westrich
Nov 22 at 15:27
No problem Pascal. The jest of it is, inside of your Reduce functions where you call return (a + b).toFixed(2); Replace it with return a+b. Then only round where I showed you (the absolute final step) :). This will make sure your numbers are a lot more accurate. See: en.wikipedia.org/wiki/Floating-point_arithmetic
– Neal
Nov 23 at 9:22
No problem Pascal. The jest of it is, inside of your Reduce functions where you call return (a + b).toFixed(2); Replace it with return a+b. Then only round where I showed you (the absolute final step) :). This will make sure your numbers are a lot more accurate. See: en.wikipedia.org/wiki/Floating-point_arithmetic
– Neal
Nov 23 at 9:22
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53433894%2fhow-to-set-decimal-value-of-2-js-datatables%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown