在这段代码中,我希望通过这一行来计算我从excel文件中获取的特定数据的总和:
" sumofKoli += JSON.stringify(row.values[4]);".
我的问题是即使是这行代码:
console.log(JSON.stringify(row.values[3])+" Sold number of :"+ JSON.stringify(row.values[4]));
给我想要的“47”,我确实想要一个整数,当我尝试总结所有数据,我有一个结果,如“94559129995555.5.2556149.9”。它将它添加为字符串值,我希望它总和为整数。你能救我吗?
以下是完整代码:
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 :(得分:1)
您必须使用parseInt将字符串转换为数字
sumofKoli += parseInt(JSON.stringify(row.values[4]))
;
答案 1 :(得分:0)
在尝试对它们求和时,将json'd值转换为parseInt
(或parseFloat
如果有小数)函数的整数。
由于您的值当前被视为字符串,因此它目前将它们连接起来而不是添加它们。
答案 2 :(得分:0)
如果您的数据仅为整数,则在添加时使用parseInt
而不是JSON.stringify
。如果您也有浮点值,请使用parseFloat
。语法很简单:
sumofKoli += parseInt(row.values[index])
答案 3 :(得分:0)
sumofKoli += parseInt(JSON.stringify(row.values[4]));
但是,为什么要串联一个JSON然后解析呢?为什么不直接使用该值?
sumofKoli += parseInt(row.values[4]);
将某些东西串化后,似乎很奇怪。