@Roman-OverOffers

Числа в Javascript (parseInt, parseFloat)?

Добрый день!
В таблице dataTables выводится все данные целыми числами (int).
a72a8718ca13b5a0a089c820833b8cb5.png

Но скрипт подсчета Totals выдает NaN.

JSON отдает данные в таком виде,

"unique_clicks": "1001", //iClicks
"events_count": 38, //iConv
"pending_revenue": 1000.0, //iPendingRevenue
"approved_revenue": 1500.0 //iApprovedRevenue

Далее они разбираются тут:

var stat_options = $.extend({
    "sAjaxSource": "/dashboard/graph/", 
    "aoColumns": [
        { "mData": "date" }, 			
        // {"mData":"clicks"}, 
        { "mData":"unique_clicks" }, 
        { "mData":"events_count" },
        { "mData":"approved" },
        { "mData":"pending" },
        { "mData":"rejected" }, 
        { "mData":"cpc" }, 
        { "mData":"ltr" }, 
        { "mData":"approval_rate" }, 
        // {"mData":"total_revenue"}, 
        // {"mData":"rejected_revenue"},
        { "mData":"pending_revenue" },
        { "mData":"approved_revenue" }  
    ], 
    "fnFooterCallback": function( nRow, aaData, iStart, iEnd, aiDisplay ) {
                var iClicks = 0
                var iConv = 0
                var iPendingRevenue = 0
                var iApprovedRevenue = 0
                for ( var i=0 ; i<aaData.length ; i++ )
                {
                    iClicks += aaData[i][1]*1;
                    iConv += aaData[i][3]*1;
                    iPendingRevenue += aaData[i][9]*1;
                    iApprovedRevenue += aaData[i][10]*1;
                }
                var nCells = nRow.getElementsByTagName('th');
                nCells[1].innerHTML = parseInt(parseFloat(iClicks));
                nCells[3].innerHTML = parseInt(parseFloat(iConv));
                nCells[9].innerHTML = parseInt(parseFloat(iPendingRevenue));
                nCells[10].innerHTML = parseInt(parseFloat(iApprovedRevenue));
                }
}, tables_options);


Но ни parseFloat, ни parseIng не помогают.
  • Вопрос задан
  • 3866 просмотров
Пригласить эксперта
Ответы на вопрос 3
nazarpc
@nazarpc
Open Source enthusiast
Почитайте документацию, и не дублируйте вопросы (вчера был такой же)
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
совет на будущее, если уж используете parseInt/parseFloat, то всегда старайтесь проставлять второй аргумент (основание системы счисления), ибо в итоге иногда это будет приводить к крайне отвратным и сложноищущимся багам. Лучше уж использовать явное приведение типов через Number.
var myFloatVal= Number('4.4'),
      myIntVal =  Number('4');
Ответ написан
Комментировать
@dmitrytm
Здравствуйте, Roman-OverOffers. Можно ли как-то с Вами связаться по поводу JSON?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы