Angular:toFixed()使用一个值但不使用另一个值?

时间:2018-03-19 13:44:34

标签: angular typescript tofixed

我正在使用带有2个输入的表单。他们每个人都调用calculeSalaire()函数。

calculeSalaire()
{
  this.fraisGestion = this.getFraisGestion();
  this.tauxFraisGestion = this.getTauxFraisGestion();
  this.salaireBrut = this.getSalaireBrut();
  this.salaireNet = this.getSalaireNet();
  this.chargesSalariales = this.getChargesSalariales();
  this.chargesPatronales = this.getChargesPatronales();
  this.totalPaye = this.getTotalPaye();
}

所有这些函数都返回number。我想为每个值显示仅2个小数位,这就是我使用toFixed(2)函数的原因。

除了这个功能外,它适用于我的所有功能:

getSalaireBrut()
{
   this.salaireBrut = (this.chiffreAffaire - this.fraisGestion - 
   this.fraisPro)/(1.10)/(1.447);

   var salaireBruttxt = this.salaireBrut.toFixed(2);

   return parseFloat(salaireBruttxt);
}

chiffreAffaire是输入

fraiPro是输入

计算

fraisGestion

我不明白为什么它对前一个函数不起作用,而它适用于下面的函数。

getChargesSalariales()
  {
    this.chargesSalariales = this.salaireBrut*(23/100);
    var chargesSalarialtxt = this.chargesSalariales.toFixed(2);

    return parseFloat(chargesSalarialtxt);
  }

您可以注意到我使用salaireBrut值,该值是由不起作用的函数计算的值。

你有什么想法会发生这种情况吗?

1 个答案:

答案 0 :(得分:0)

toFixed函数返回一个字符串,作为一个不会保留或显示尾随零的数字。因此,toFixed实际上在你的函数中完全正常工作(当你在那里放置一个断点时可以很容易地检查这个),但parseFloat再次使它成为一个数字,它永远不会包含尾随我之前说的是零。

所以你实际上必须在那里返回一个字符串 - 删除parseFloat将解决问题。