我有一个向用户显示发票的应用程序,除了发票中列出的项目的总值之外,我设置了所有内容,我使用以下代码对值求和,但不是得到总和,而是得到了串联值
this.http.post('http://myurl',data,headers)
.map(res => res.json())
.subscribe(res => {
console.log(res)
loader.dismiss()
this.items=res.server_response;
this.totalAmount = this.getTotal();
});
});
}
;
}
getTotal() {
let total = 0;
for (var i = 0; i < this.items.length; i++) {
if (this.items[i].amount) {
total += this.items[i].amount;
this.totalAmount = total;
}
}
return total;
}
显示值0100035004000假定为 (1000+3500+4000)
而不是total += this.items[i].amount;
似乎将数字连接为字符串,将其更改为 total += Number(this.items[i].amount);
以在打字稿中从字符串转换为数字。
通过添加 + 将 items.amount 解析为数字:
getTotal() {
let total = 0;
for (var i = 0; i < this.items.length; i++) {
if (this.items[i].amount) {
total += +this.items[i].amount;
this.totalAmount = total;
}
}
return total;
}