2017-09-27 32 views
0

我有一个计算打字稿中的总和的问题,其中有2个数字连接而不是总结起来。我已经看过了这个问题,并已经看到几个主题涵盖这一问题,其中解决方案通常是这样的:打字稿数组总和而不是串接

“使用ParseInt()ParseFloat()你的字符串转换为整数”

的问题是,我不有字符串,即使我使用数字,他们仍然连接。

我的代码如下:

 updateSummaryAmount(index: number){ 
     let summary = 0; 

     this.listOfPeriods[index].declarations.forEach(element => { 
      summary = summary + element.amount; 
     }); 

     this.listOfPeriods[index].summary = summary; 
    } 

如果我总结

0,55 

而且

0,45 

我得到

00,550,45 

当我尝试使用parseInt函数()或parseFloat(0,我得到以下打字稿错误:

[ts} Argument of type 'number' is not assignable to parameter of type 'string'. 

我试图与Math.floor()总结,只是为了测试,而这个工作,但显然给了我难倒下降数字,我不想要。

我如何总结2个值在我的情况?

+1

是什么'的console.log(typeof运算element.amount)'给你,如果你把它foreach循环里面? – simne7

+1

对不起,重复明显的,但如果你说的是真的,你正在处理字符串。请提供一个[mcve]来演示这个问题,并且包含一个'this.listOfPeriods [index] .declarations'的例子。你可以'console.log'将它包含在你的问题 – Jamiec

+1

中,并告诉我们你在parseFloat()上给出了什么参数(parseInt()在这里不适合) – Pac0

回答

3

尝试下面强制改变element.amount数点

this.listOfPeriods[index].declarations.forEach(element => { 
    summary = summary + (+element.amount); 
}); 
+0

似乎是“工作”,唯一的问题是,1,25和0,25的结果导致1,5而不是1,50。任何想法? –

+5

@NiekJonkman'1.5' *是*'1.50'。你在问如何格式化一个数字来显示这是一个不同的问题(已经在SO上反复回答) – Jamiec