0

我正在使用带有 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值是由不起作用的函数计算的值。

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

4

1 回答 1

0

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

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

于 2018-03-19T13:48:57.707 回答