I have a tables that I am trying to sort, the problem is that when I add locales to the numbers, it breaks sorting, it sorts as it were strings.
I followed this answer and I modified without having to use regex, but then it begins sorting as it were strings and no longer numbers, for instance
1
1.200
2
$(document).ready(function () {
$('.my_table').DataTable({
"bProcessing": true,
"bPaginate": true,
"bDestroy": true,
"bShowPollInfo": false,
"iDisplayLength": 20,
"aLengthMenu": [[20, 40, -1], [20, 40, "_all"]],
"sScrollX": "100%",
"aoColumns": [
{ "sWidth": "160px", "sClass": "nowrap" },
],
"aoColumnDefs": [
{
"mRender": function (data, type, row) {
return formatNumbers(data);
},
"aTargets": [1, 2]
},
],
});
});
function formatNumbers(val) {
return parseInt(val).toLocaleString("de-DE");
}
formatNumbers()function explicitly returns a string; what did you expect to happen? Also, if you really have numbers with fractional parts, you should not be usingparseInt()on the values. (If they start out as numbers, then you don't need to "parse" them at all anyway.)