2017-01-24 2 views
0

Hier in diesem Code, mag ich die Summe von bestimmten Daten zu berechnen erreichen, die ich aus Excel-Datei von dieser Linie nahm:wie zuweisen JSON.stringify(), um JavaScript-Variable

" sumofKoli += JSON.stringify(row.values[4]);".

Mein Problem ist, dass selbst diese Codezeile:

console.log(JSON.stringify(row.values[3])+" Sold number of :"+ JSON.stringify(row.values[4]));

Gibt, was ich will wie "47", die ich genau als eine ganze Zahl will, wenn ich versuche, alle Daten zu summieren, ich habe ein Ergebnis, das wie "94559129995555.5.2556149.9" ist. Es fügt es als ein Zeichenfolgenwert hinzu, ich möchte es als Ganzzahl summieren. Kannst du mir helfen ? Hier

ist der vollständige Code:

Reader.prototype.readExcel = function(chartType,callback){ 
 

 

 
    // read from a file 
 
    var workbook = new Excel.Workbook(); 
 
    var sumofKoli=0; 
 
    var sumPrice =0; 
 
    workbook.xlsx.readFile(filename) 
 
     .then(function(err,results) { 
 
      var worksheet = workbook.getWorksheet('Sayfa1'); 
 
      worksheet.eachRow({ includeEmpty: true }, function(row, rowNumber) { 
 
      console.log("----------"); 
 
      console.log(JSON.stringify(row.values[3])+" Sold number of :"+ JSON.stringify(row.values[4])); 
 
      console.log("----------"); 
 
      sumofKoli += JSON.stringify(row.values[4]); 
 
      console.log(JSON.stringify(row.values[3])+" Sold in price of :"+ JSON.stringify(row.values[5])); 
 
      sumPrice += JSON.stringify(row.values[5]); 
 
      console.log("----------"); 
 

 
      }); 
 
      results = { sumofKoli : sumofKoli, sumTutar : sumPrice}; 
 
      if (err){callback(err,null);} 
 

 
      callback(null,results); 
 
     });

+0

Sie versuchen, eine Variable vom Typ 'string' mit einer Variablen vom Typ 'integer' hinzuzufügen. –

Antwort

1

Sie haben parseInt zu verwenden, um die Zeichenfolge zu Anzahl konvertieren

sumofKoli += parseInt(JSON.stringify(row.values[4]));

+1

er sagte ausdrücklich, er will ein Integer obwohl –

+0

ich danke Ihnen allen für Ihre Antworten, aber es gibt NaN zurück, wenn ich versuche: sumPrice + = parseFloat (JSON.stringify (row.values ​​[5])); sumPrice + = parseFloat (JSON.stringify (row.values ​​[5])); beide Lösungen geben "NaN" -Wert zurück. – ozercevikaslan

+0

können Sie uns die Daten innerhalb der Zeile Objekt geben –

0

Konvertieren Sie Ihre json'd-Werte in Ganzzahlen mit den Funktionen parseInt (oder , wenn Sie Dezimalstellen haben), wenn Sie versuchen, sie zu summieren.

Da Ihre Werte derzeit als Zeichenfolgen betrachtet werden, verketten sie sie derzeit, anstatt sie hinzuzufügen.

0

Wenn Ihre Daten nur Integer sind, verwenden Sie parseInt anstelle von JSON.stringify, während Sie hinzufügen. Wenn Sie auch Float-Werte haben, verwenden Sie . Syntax ist einfach:

sumofKoli += parseInt(row.values[index])

0

OP ganze Zahlen zu summieren fragt, so ähnlich wie Vladu Ionut Antwort sollte es sein:

sumofKoli += parseInt(JSON.stringify(row.values[4]));

Aber warum Sie stringigying eine JSON und dann Parsen es? Warum nicht den Wert direkt verwenden?

sumofKoli += parseInt(row.values[4]);

Es scheint seltsam, etwas zu stringify es nur danach zu werfen.